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

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 试图关闭进程超时就会被干掉。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容