我似乎在Celery中存在一个错误,即前叉池(MainProcess + Fork任务处理程序进程)中的热关机无法正常终止,因为到任务完成时,与代理的连接已经关闭。
后期确认无法解决问题。
要我自己修复此问题,我想管理正在运行的任务的数量,以便在有正在运行的任务时将对Celery的SIGTERM处理程序的调用推迟到没有正在运行的任务的那一刻,然后让该调用传递并关闭下来。
我面临的问题是如何在MainProcess中检测子派生进程中正在运行的任务的数量?
task_prerun和task_postrun signals是在子派生的进程中处理的,因此它们对MainProcess中的逻辑不是很有用。