セロリでマルチスレッドの同時実行がどのように機能するかをまとめるのに苦労しています。
使用するデフォルトのタイプは-P eventlet. -P threadsGILが原因で機能しないと想定しており、実際には同時実行性はありません。
しかし、(ここの例から)単純にタスクを指定-P eventletして起動することはできず、 を介して並列タスクを開始する必要があるようにも見えますcelery.group。これによると、マルチプロセス ワーカーはメッセージを並行して消費することはありません。
つまり、要約すると、タスクの真の並列化が行われているように見えます。マルチプロセッシングを使用する必要があります。イベントレットを使用できますが、タスクの実行方法を変更する必要があります。私のタスクは外部トリガーに応じてランダムに起動するため、いつ、いくつ作成する必要があるのか事前にわかりません。
これは正しいです?