我有一个带有一些芹菜任务的django应用程序,我盯着工人
celery -A myapp worker --loglevel=INFO --concurrency=10
我使用task.deploy()
运行任务,但是当我尝试使用celery.task.control.revoke(task_id, terminate=True)
终止任务时
我正在
[2015-07-27 14:27:04,736: ERROR/MainProcess] Task task[80e06e87-f254-4c0b-bea5-5c21540777ab] raised unexpected: Terminated(15,)
Traceback (most recent call last):
File "/home/blake/projects/venv/myapp/lib/python2.7/site-packages/billiard/pool.py", line 1674, in _set_terminated
raise Terminated(-(signum or 0))
Terminated: 15
我正在寻找有关此错误的帖子,但我发现只有3年的帖子对我没有任何帮助。
我正在使用
celery==3.1.18
kombu==3.0.25
billiard==3.3.0.20
那么如何成功终止已经运行的任务?
编辑:但是任务正在终止但是代码由于异常而停止执行,并且除了没有捕获异常之外的某种方式
try:
revoke(task_id, terminate=True)
except Terminated:
pass
答案 0 :(得分:1)
创建任务时,您需要指定将在任务
中抛出的异常from billiard.exceptions import Terminated
@task(throws=(Terminated,))
def task():
...