私は、djangoのセロリ(バージョン2.3.2)を使って複数のシミュレーションをタスクとして実行しています。最初のタスク(setup_simulations)が完了した後、私がしようとセロリのタスクが取り消されない
@task(priority=1)
def setup_simulations(parameters):
task_ids = []
for i in range(number_of_simulations):
result = run_simulation.delay(other_parameters)
task_ids.append(result.task_id)
return task_ids
:views.pyで
:tasks.pyで
result = setup_simulations.delay(parameters)
request.session['sim'] = result.task_id # Store main task id
シミュレーションは別のタスクで設定を取得します
main_task_id = request.session['sim']
main_result = AsyncResult(main_task_id)
# Revoke sub tasks
from celery.task.control import revoke
for sub_task_id in main_result.get():
sub_result = AsyncResult(sub_task_id); sub_result.revoke() # Does not work
# revoke(sub_task_id) # Does not work neither
"python manage.py celeryd - の出力を見ると、次のようになります。 l info "を指定すると、何も起こらなかったかのようにタスクが実行されます。誰か何かが間違っていた可能性がありますか?
私はブローカーとしてKombuを使用しているという事実によって問題はありますか? (これらの「バーチャルトランスポート」はブロードキャストとイベント機能が制限されている可能性があります。たとえばリモコンコマンドはAMQPとRedisでのみ動作します) – Meilo