これは私の以前の質問に対するフォローアップの質問です。 Celeryで既に実行中のタスクをキャンセルしますか?
celery.task.control.revoke({task_id}, terminate=True)
タスクを実行している私のワーカーを本当に殺しますか。タスクが取り消されても停止しないサブプロセスをタスクが実行しているという問題が発生しています。
dmarkeyによるこの投稿 http://dmarkey.com/wordpress/2011/09/07/killing-child-processes-of-celery-tasks-on-a-timeout/ タイムアウト時にkillしたくないのではなく、task_idでrevoke()を実行した場合を除いて、自分がやりたいことに最も近いと思われるものです。
私が持っているのは(String)task_idだけであると思われるこのようなサブプロセスを強制終了する方法はありますか?あなたの助けに感謝します - 私が望むのと同じくらい多くの経験を持っていません、ドキュメントをナビゲートするのは難しいです!
回答:
回答№1の場合は3のコールバックを設定してみてください on_revoked
それはタスクの子プロセスを殺します。