2

セロリにタスクAとBがあります。B は A のアンタゴニストです。したがって、このタスクが同じパラメーターで並行して実行されると、システムは矛盾します。2 つの質問があります。

  1. パラメータに基づいて、タスク A と B を常に連続して実行できますか? パラメータ 1 の A とパラメータ 1 の B を連続して実行したいのですが、A(1) と B(2) が並行して実行される可能性があります。

  2. まだ実行されていないタスクの繰り返しシーケンスを折りたたむ方法はありますか? たとえば、ブローカー (私の場合は Redis) に ABABAB タスクがありますが、AB を実行することはできますか?

どちらの質問も高度なブローカーで解決できると思いがちですが、RabbitMQ のデプロイは避けたいと思います。

前もって感謝します。

4

1 に答える 1

1

Redis でタスク用に別のキューを維持することにしました。Celery に新しいタスクを送信すると、Redis リストにも追加されます。タスクが実行されているとき、何をしなければならないかを決定します。A または B は、現在のシステム状態によって異なります。

解決策は見栄えがよくありませんが、問題が発生しないことを願っています。

于 2013-12-16T09:04:28.397 に答える