加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

django – 在芹菜中终止任务3.1.18

发布时间:2020-12-20 13:51:33 所属栏目:Python 来源:网络整理
导读:我有一个 django应用程序与一些芹菜任务,我正在盯着工人 celery -A myapp worker --loglevel=INFO --concurrency=10 我用task.deploy()运行任务,但是当我尝试用celery.task.control.revoke终止任务时(task_id,terminate = True) 我越来越 [2015-07-27 14:27:
我有一个 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

解决方法

创建任务时,您需要指定将在任务中抛出的异常

from billiard.exceptions import Terminated

@task(throws=(Terminated,))
def task():
   ...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读