2016-05-18 8 views
7

私はローカルマシン上でいくつかの "実行可能ファイル"を実行し、Webページを通してその出力を分析することができるdjangoウェブサーバーを作成しています。セロリ対ProcessPoolExecutor/ThreadPoolExecutor

私はこれまで同様の状況で「実行可能ファイル」を実行するためにセロリタスクキューを使用していました。しかし、Python concurrent.futuresを読んだら、代わりにThreadPoolExecutor、またはProcessPoolExecutor(またはThreadPoolExecutorProcessPoolExecutor:Dの中に)を使用するべきかどうか疑問に思いますか?

グーグル私はone relevant questionとセロリをトルネードと比較するだけで、トルネードだけで操縦していました。

私のシンプルなウェブサーバーにセロリーまたはPoolExecutorを使用する必要があります。なぜですか?

答えて

4

場合は、セロリを使用する必要があります:あなたが簡単かつ独立してスケールする

  1. あなたはあなたのタスクを監視し、それらが
  2. に失敗した場合にあなたがしたいそれらを再試行する方法をしたい
  3. あなたのウェブサーバから

これに加え、UIプレゼンテーション側でも役立つ非常に成熟したライブラリのサイドプロジェクトがあります。 Jobtastic

リストされたポイントのどれも必要でなく、状況について多くのことを意識することなく、スケーラビリティの必要性を特に気にせずにこのタスクを実行するだけで簡単に保つことができます。ちょうど二だけpickableオブジェクトを受信して​​戻すことができるようになることと、最初は自分のメインプロセスに添付子スレッドを生成することを心に留めておくThreadPoolExecutorまたはProcessPoolExecutorの使用について

(おそらくあなたのウェブサーバあなたの中にそれを使用していない場合別のデタッチされたプロセス)、それらを混在させるアプローチは実装の詳細に応じて意味をなすことができます。