优雅地停止芹菜任务


问题内容

我想优雅地退出芹菜任务(即不通过致电revoke(celery_task_id, terminate=True))。我以为我会向设置标志的任务发送一条消息,以便任务函数可以返回。与任务进行交流的最佳方式是什么?


问题答案:

为此使用信号。芹菜revoke
正确的选择;它默认情况下使用SIGTERM,但是您可以根据需要使用参数指定另一个signal

只需在您的任务中设置一个信号处理程序(使用signal模块)即可正常终止该任务。