と に基づく分散アーキテクチャがrabbitMQありCeleryます。問題なく複数のタスクを並行して起動できます。スケーラビリティは良好です。
ここで、タスクをリモートで制御する必要があります: PAUSE、RESUME、CANCEL。私たちが見つけた唯一の解決策は、Celery タスクで、DB 要求の後にコマンドに応答する別のタスクへの RPC 呼び出しを作成することです。Celery タスクと RPC タスクは同じマシン上になく、RPC タスクのみが DB にアクセスできます。
それを改善し、進行中のタスクと簡単にコミュニケーションをとる方法について何かアドバイスはありますか? ありがとうございました
編集:
実際には、下の図のようなことをしたいと考えています。Blue構成またはを行うのは簡単ですが、Orange両方を同時に行う方法はわかりません。
ワーカーはコモンにサブスクライブしており、各ワーカーは交換でJobs queue独自に宣言されています。Admin queue
編集:
でこれが不可能な場合はCelery、python-rq.