2017-03-07 11 views
1

私はbashコマンドを呼び出すセロリタスクを持っています(os.system()またはsubprocess.Popen()を使用できます)。Celeryでサブプロセスを呼び出すタスクの取り消し

私が呼ぶときは:私の仕事上の

revoke(task_id, terminate=True) 

、サブプロセスの私のbashコマンドを実行すると、私のタスクによって作成されたが殺されていません。それを行う方法はありますか?

答えて

2

文書によれば、terminate=TrueのときにSIGTERM信号が送信されます。

http://docs.celeryproject.org/en/latest/userguide/workers.html#revoke-revoking-tasks

SIGTERMを無視することができますので、多分SIGKILLを送信してみては?

+0

私はすでにSIGKILLで試してみましたが、信号がサブプロセスに転送されていないようです – Archimondain

+0

サブプロセスを開始するときに 'shell = True'を使用していますか? – MrName

+0

いいえ、私がそうするとき、物事はうまくいっていません。 SIGKILLシグナルをサブプロセスに転送する必要がありますか? – Archimondain

関連する問題