Django

2018-03-21 celery 子线程卡住导致任务不能结束解

2018-03-21  本文已影响2人  多吃水果少吃肉

http://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-task_time_limit

from celery.exceptions import SoftTimeLimitExceeded

@app.task
def mytask():
    try:
        return do_work()
    except SoftTimeLimitExceeded:
        cleanup_in_a_hurry()

但是 TimeLimitExceeded 会直接杀掉进程,raise 一个 TimeLimitExceeded,不能被 task 捕捉,所以应该两种方案配合使用,soft_time_limit=小int,time_limit=大int,使用soft 试图关闭进程超时就会被干掉。

上一篇下一篇

猜你喜欢

热点阅读