多渠道定时推送

同一个任务推到 QQ + 飞书 + 微信 + 邮件,让龙虾在不同场景用不同渠道找到你。这篇讲怎么做、怎么不互相打架、怎么单个渠道挂了不影响其他

前置条件

一、为什么需要多渠道推送

单渠道的典型痛点:

  • 公司用飞书,下班后看不到 —— 你想让重要告警同时发私人微信
  • QQ 在夜里静音,飞书在工作时静音 —— 根据时段切换渠道
  • 家人群在微信,同事群在飞书 —— 同一份早报要推到两拨人
  • 某个渠道突然挂了(API 限流、token 过期) —— 其他渠道要顶上

新手做法:给每个渠道单独建一个 cron 任务。问题:① 任务数翻倍;② 重复执行浪费 token;③ 数据重复抓取。

高级做法:一个 cron 任务,提示词里声明多渠道

二、三种推送模式

按场景挑:

模式什么意思适合
并行一次触发,同时发到所有渠道重要告警、不嫌吵的场景
主备先发主渠道,主渠道失败再发备用单点容灾
按时段切换早 9-晚 6 发飞书,其他时间发微信工作/生活分流

并行模式(最常用)

在提示词里显式列出所有目标渠道

帮我建一个服务健康检查任务:

时间:每 6 小时一次
内容:检查 〈服务〉 健康状态
推送规则:**同时**通过飞书和微信推送告警,两个渠道内容一致
失败处理:如果一个渠道发送成功另一个失败,记录失败的那个但不要重试——告警已经发出去了

关键:是"一次告警,多渠道广播",不是"多个任务"。

关键句是"同时"和"两个渠道内容一致"——龙虾会理解为这是一个动作(多渠道广播),而不是多个动作。

主备模式

帮我建一个服务存活监控任务:

时间:每 30 分钟一次
内容:检查 〈服务〉 状态
推送规则:**先尝试通过飞书推送**。如果飞书发送失败(返回错误或超时 10 秒),**降级通过微信推送**,并在消息末尾标注"[飞书不可用]"
兜底:两个渠道都失败时,写入 ~/.openclaw/logs/alert-failed.log,下次触发时优先重试

这是单点容灾——主渠道挂了备用顶上,不要因为飞书抽风错过重要告警。

关键句是"先尝试" + "降级"——龙虾会按顺序执行,不会并行。

按时段切换

帮我建一个服务存活监控任务:

时间:每 1 小时一次
内容:检查 〈服务〉 状态
推送规则:按当前北京时间选渠道:
  - 工作日 09:00-18:00 用飞书(同事需要看到)
  - 其他时间用微信(不打扰同事)
跨时段时(17:55 触发)发飞书即可,不需要双发

让告警在我醒着、能处理的时间到达对的渠道。

时段判断让龙虾自己做——它会读当前时间然后选渠道。

三、渠道适配:每个渠道的格式限制

不同渠道的消息格式不一样,不要假设龙虾自动知道。在提示词里写清楚:

渠道限制怎么说
QQ单条消息 5000 字、markdown 支持有限"格式化为纯文本,每条不超过 2000 字"
飞书富文本卡片、支持 markdown"用 markdown 格式,可以用 emoji 和加粗"
微信单条消息较短、对链接敏感"每条不超过 500 字,链接单独成行"
邮件几乎没限制、可以带附件"主题用 XX,正文用 markdown,附件保存到 /tmp/"
企业微信类似微信但支持 markdown"用 markdown 格式,每条不超过 1000 字"

长内容要分段

如果你的早报内容很长(比如 20 条新闻),微信会截断、QQ 会刷屏。在提示词里写:"如果内容超过「渠道」的舒适长度(500 字),自动拆成多条发送,每条带 '(第 N/M 条)' 后缀。"

四、失败处理:单渠道挂了不影响其他

多渠道推送最容易踩的坑:一个渠道挂了,整个任务报错,其他渠道也没发出去

避免方法——在提示词里明确:

帮我建一个早报任务(多渠道版):

时间:每天北京时间 7:00
内容:抓 HN 前 10 条 + 中文摘要
推送:4 个渠道,**每个渠道独立处理**:
  - 飞书(完整 markdown,可以带 emoji 和加粗)
  - 微信(拆成 3-4 条,每条不超过 500 字,去掉链接只留标题)
  - QQ(完整内容,但链接单独成行)
  - 邮件(完整内容 + 附件 /tmp/daily-report-YYYY-MM-DD.md)

关键规则:**单个渠道失败不要中断整个任务**,每个渠道独立尝试。最后汇总:成功 N 个、失败 M 个、失败原因是 X,通过飞书告诉我。

这段话强制龙虾串行执行 + 错误隔离,不会因为一个渠道挂了整个崩。

五、真实场景:四渠道早报

电商运营小张的实例。他在公司有飞书群(同事)、家人微信群、技术交流 QQ 群、个人邮箱。希望同一份早报分别推到这 4 个地方,每个渠道适配格式。

帮我建一个每日运营早报任务:

时间:每天北京时间 7:00
内容:
  1. 抓取 HN 前 10 条 + 36kr 今日热门 + 财联社早间快讯
  2. 每条配 50 字以内中文摘要
  3. 整理成 markdown,标题用 "🐲 每日早报 YYYY-MM-DD"

推送(4 个渠道,独立适配、独立失败):
  - 飞书(公司群):完整 markdown,可以带 emoji 和加粗
  - 微信(家人群):拆成 3-4 条,每条不超过 500 字,去掉链接只留标题
  - QQ(技术群):完整内容,但链接单独成行
  - 邮件(自己):完整内容 + 附件 /tmp/daily-report-YYYY-MM-DD.md

失败处理:每个渠道独立尝试,单个失败不中断。最后汇总"成功 N 个、失败 M 个",通过飞书告诉我。
兜底:所有渠道都失败时,立刻写 ~/.openclaw/logs/morning-report-failed.log,下次 cron 触发时优先重试。

跑两天看效果,再调每条字数和拆分策略。

六、什么时候不要多渠道推送

  • 强实时告警(< 1 分钟级别)—— 多渠道串行会拖慢,用 webhook 直接广播
  • 高敏感数据(工资单、合同)—— 只推一个加密渠道,别广撒网
  • 试验性任务 —— 先用单渠道验证内容质量,稳定了再扩到多渠道

七、下一步

正文导航

打开抖音
有问题点击我