2012-03-06 115 views
8

我需要在倒计时后运行芹菜任务,但能够在某些条件下重置倒计时。例如,我想使用countdown=15调用apply_async,但是如果某个事件在执行任务之前发生,我想将该倒计时再次设置为15秒。重置芹菜任务倒计时

从文档和谷歌搜索我想我可以通过保存任务ID,然后撤销并重新创建任务,如果事件发生。我想知道是否有一个更优雅的方法。

回答

1

而不是设置倒计时,你不能撤销这个任务,并创建一个新的?

+1

正如我所说,这是我在阅读文档后提出的,但当时它感觉不对,所以我想知道是否有另一种方法来做到这一点。 – 2012-11-27 01:04:18

0

使用某些缓存(如Redis)来存储某个锁定密钥。当您调用该键的apply_async增量值时。当你在芹菜中执行这个任务 - 递减这个值。如果值为0 - 执行任务。所以如果有两次apply_async调用,你的计数器将会是2,并且第一次执行的任务将被跳过。我觉得this code can help you