【发布时间】:2016-09-14 20:16:38
【问题描述】:
正如 Celery documentation 所说,已经执行的任务不会通过调用 .revoke() 中止,除非设置了 terminate=True。但不建议这样做,因为它会杀死工人本身,这可能已经开始了另一项任务。这是否意味着没有可靠、稳定的方法来做到这一点?
编辑:celery.contrib.abortable 不适合我,因为正如文档所述,它仅适用于数据库后端。
【问题讨论】:
-
这取决于您尝试终止的任务(网络、文件、数据库操作等),请看一下这个示例:stackoverflow.com/questions/37039941/celery-python-revoke 在我的情况下,我的主要任务调用子进程除非我发送 SIGKILL 信号,否则不会终止。