前提:需要做个对某个任务暂停(撤销)的同时且不影响其他任务继续执行的功能
查找资料得知celery3.0版本后加有revoke 功能
下面开始
Django=3.2.8 (这个版本不重要,重要的是下面的那两个)
django-celery=3.3.1
celery=3.1.26.post2
两个celery版本不搭的话用起来很麻烦
也可以只下载celery,这里我用djcelery是因为他能联合后台admin生成一个定时任务配置页面,用不到可以忽视这一步
django-celery这个包支持的最大celery好像就是celery3…
他这个django-celery好久不更新了,有个新的叫django_celery_beat,有时间再看
还有个重要的地方!!!
还有个重要的地方!!!
还有个重要的地方!!!
忘记了python几之后async成了内置关键词了
而celery版本比较早,所以和这个async关键词冲突了,如果不能升/降级python版本的话
建议修改celery中的这个async关键词(个人推荐这种方法,升/降python版本太麻烦,保不齐还有别的不能用的)
File "/home/lice/.local/lib/python3.8/site-packages/celery/utils/timer2.py", line 19
from kombu.async.timer import Entry, Timer as Schedule, to_timestamp, logger
^
SyntaxError: invalid syntax
#这里一定要看,甭管他弹出多少行错误,找准这个async这一行给他改了
不止这一处需要修改
不止这一处需要修改
不止这一处需要修改
就多启动项目几次,他报一次改一次,直到改的不报错就好了(挺扯的= =||)
代码功能描述
发布celery任务,同时记录任务id(task.id),在任务还在运行的时候revoke(task.id),进行销毁,就这