Bull MQ可重复作业未触发



这个问题是在这个线程的延续可重复的工作没有被触发在给定的cron时间在公牛

我也面临同样的问题。我应该如何指定时区?我尝试指定为

repeat: { cron: '* 7 14 * * *', tz: 'Europe/Berlin'}

表示在德国时区14:07触发作业。虽然作业列在队列中,但是作业没有被触发。

我也试着重复:

{
cron: '* 50 15 * * *', 
offset: datetime.getTimezoneOffset(), 
tz: 'Europe/Berlin'
}

我终于想出解决办法了。

需要注意的一点是,我还没有初始化queuesscheduler实例。当然时区也起着至关重要的作用。但是如果没有queuesscheduler实例(与Queue具有相同的名称),作业就不会被添加到队列中。queuesscheduler实例充当簿记员。还要注意另一个重要的参数"限制"。如果您不将限制设置为1,那么在特定时间调度的作业将被无限次触发。

要在德国时间每天22:30运行作业,配置如下:
repeat: { 
cron: '* 30 22 * * *',
offset: datetime.getTimezoneOffset(),
tz: 'Europe/Berlin',
limit: 1
}

Reference: https://docs.bullmq.io/guide/queuescheduler在上面的链接中,文档清楚地提到队列调度器实例负责记录作业。

在这个链接- https://docs.bullmq.io/guide/jobs/repeatable中,文档特别警告我们要确保我们实例化了一个queuesscheduler实例。

您需要在QueueSchedular的帮助下管理可重复的队列。QueueSchedular将队列名作为第一个参数,连接作为第二个参数。代码如下:

const queueSchedular = new QueueSchedular(yourQueue.name, { connection });

相关内容

  • 没有找到相关文章

最新更新