在django项目中,我使用celery来运行异步任务。我想实现一个函数来取消正在运行的任务。
官方文档:撤销任务表示可以使用“revoke(terminate=True)”方法。我试过了,但不管用。以下是我尝试过的一些方法:
...
task = AsyncResult("1e8fb3f3-4253-4bec-b71a-665ba5d23004")
print(task.state)
'STARTED'
task.revoke(terminate=True)
print(task.state)
'STARTED'
app.control.revoke("1e8fb3f3-4253-4bec-b71a-665ba5d23004", terminate=True)
print(task.state)
'STARTED'
最后它仍然执行到完成。有人遇到过类似的问题吗?或者有其他方法可以满足我对celery 的需求吗?任何帮助将不胜感激!
1条答案
按热度按时间nwwlzxa71#
我在
Celery=5.3.0
中遇到了同样的问题,this answer帮助我解决了这个问题。它说你应该根据结果撤销任务,例如: