重置Celery任务的倒计时



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

从文档和谷歌搜索来看,我认为我可以通过保存任务id,然后在事件发生时撤销并重新创建任务来实现这一点。我想知道是否有更优雅的方法。

与其设置倒计时,难道你不能撤销这个任务并创建一个新任务吗?

使用一些缓存,如Redis,来存储一些锁密钥。当您调用键的apply_async增量值时。当您在芹菜中执行此任务时,请递减此值。如果值为0,则执行任务。所以,若有两个apply_async调用,则计数器将为2,并且将跳过任务的第一次执行。

我认为这个代码可以帮助你。

相关内容

  • 没有找到相关文章

最新更新