2013-08-19 5 views
5

セロリがスレッド内でタスクを実行するか、別の子プロセスでタスクを実行するかを教えてもらえますか?ドキュメントはそれを説明していないようです(3回読むとそうです)。それがスレッドであれば、どのようにGILに合格するのですか(特に誰にどのようにイベントが通知されますか)?セロリのapply_asyncスレッドまたはプロセスですか?

セロリの非同期性とTwistedのリアクターモデルをどうやって比較しますか?結局リアクターモデルを使ったセロリーですか?

おかげで、

答えて

2

-cおよび-Pは、セロリの労働者のための同時実行に関連するオプションです。 eventlet使用

 
    -c CONCURRENCY, --concurrency=CONCURRENCY 
         Number of child processes processing the queue. The 
         default is the number of CPUs available on your 
         system. 
    -P POOL_CLS, --pool=POOL_CLS 
         Pool implementation: processes (default), eventlet, 
         gevent, solo or threads. 

http://docs.celeryproject.org/en/latest/userguide/concurrency/eventlet.html#enabling-eventlet

http://docs.celeryproject.org/en/latest/internals/reference/celery.concurrency.processes.html

3

を誰かがセロリは、スレッドや 別の子プロセスでタスクを実行するかどうかを教えてもらえますか?

タスクは別のマシン上の別のプロセスで実行されません。それはあなたが '遅延'と呼ぶスレッドの子プロセスではありません。 -Cオプションと-Pオプションは、ワーカープロセスが自身のスレッドをどのように管理するかを制御します。ワーカープロセスは、完全に独立したメッセージサービスを介してタスクを取得します。

セロリの非同期性とTwistedのリアクターモデルをどのように比較しますか?結局リアクターモデルを使って セロリですか?

Twistedはイベントキューです。これは非同期ですが、並列処理用に設計されていません。

関連する問題