You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Telegram通知渠道:定时自动发送文章的实现问题

定时发送Telegram文章:Cron Job + Queue 组合方案才是最优解

你的问题核心是缺少自动触发任务的机制——单独用Queue的话,任务必须靠外部请求(比如刷新网页)推送到队列里,自然没法定时自动执行。结合两种工具的优势来用才对:

  • Cron Job 管「定时触发」:
    它是主动型的定时调度工具,到了预设时间就会自动执行指定脚本,完全不依赖用户访问。生产环境里配置好Cron(比如每分钟跑一次检查脚本),让它去数据库里捞到点该发的文章,把发送任务推送到Queue里就行。

  • Queue 管「可靠发送」:
    把调用Telegram API发文章的逻辑放到Queue的Worker里执行,好处是异步不阻塞Cron任务,还能给失败的任务加重试机制(比如网络波动导致发送失败,自动重试2-3次),避免消息丢失。

具体流程走一遍:

  1. 提前把要发送的文章存进数据库,带上「计划发送时间」和「发送状态」字段
  2. 配置Cron表达式,比如* * * * *(每分钟执行一次),指向你的检查脚本
  3. 脚本启动后,查询数据库中「计划发送时间≤当前时间且未发送」的文章
  4. 把这些文章的发送任务(比如文章ID、内容)推送到Queue
  5. Queue的Worker进程一直监听任务,拿到任务后调用Telegram API发送,发送成功后更新数据库里的文章状态

单独用其中某一种的问题:

  • 只用Cron:如果发送任务多或者Telegram API响应慢,Cron任务会被阻塞,甚至错过下一次调度
  • 只用Queue:没有自动推送任务的触发源,必须靠用户请求或手动操作,没法实现定时自动发送

内容的提问来源于stack exchange,提问作者Mayuthean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 21:06:06