celery执行延时任务

雨燕双飞 提交于 2019-11-26 05:37:29

由于项目需求,需要在指定时间之后执行异步任务给用户推送消息,由于之前只用过celery的定时任务,在查阅一番资料之后,发现有官方文档中是有相关说明的。

T.delay(arg, kwargs=value)

是常见的用来执行celery异步任务的命令。

而还有另一个命令是不常用的

T.apply_async((arg,), {'kwarg': value}, countdown=60, expires=120)

时可以用来执行延时任务的,其中countdown指定多少秒后执行,expires指定最长等待之间,即过期时间。
由于celery延时任务在超过执行时间后仍未执行,可能会发生重复执行的情况,所以最好指定expires避免此种情况的发生

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!