このタスクマスターは一回限りの多数のタスクを処理するために設計された単純な分散キューである。
私たちは、「新しいスキーマにこのデータを移行する」のように頻繁に、しかし珍しくタスクを処理するためにディスカスでこれを建てた。
のはなぜ?の
「セロリを使用しないのはなぜ? "あなたは、依頼されることがあります。さて答えは、中央の場所にすべてのタスクをバッファリングするために、通常のキューイングは(しない文字通り、それはせずに痛みを伴うことと思います)が必要なことを単純です。これは、大量のデータが含まれている場合は特に、タスクが大量にある問題となる。
あなたは10億タスク、5Kの重さをそれぞれ持っている想像してみてください。厥、ちょうどその周りに維持し、あなたが非常に少ない獲得するために必要なストレージの最小4テラバイトで、圧縮されていない。
一方、工事監督は、(標準のPythonキューのを使用して)再開可能イテレータを取る、と一度に最大ジョブ数に引っ張るように設計されています。これは直線的に拡張することができます一貫性のあるメモリパターンを保証します。
の使用法の
イテレータ、およびコールバックを作成します。
輸入ソケット
#私たちは** **設定されていないか、ランダムなたわごとはファンにヒットするデフォルトのタイムアウトを確認する必要があります。
socket.setdefaulttimeout(なし)
#工事監督/ example.py
DEF GET_JOBS(最後の= 0):
 状態が再開された場合は、#の最後には、送信されます
 前の実行から#
  iについてはxrangeで(最後の、100000000):
 #ジョブはピクルスとシリアライズでなければなりませんが得られた
 収率のI
デフhandle_job(I):
 #この**必見は、ジョブを実行することができるプロセスを再開するように、べき等**
 #は、既に実行されていたこと
 プリントは「%rを手に入れた!」 %のI
マスターをスポーン:
  TM-マスターtaskmaster.example
スレーブをスポーン:
  TM-スレーブtaskmaster.example
または8スレーブ(それぞれがスレッドプールを含む)を生む。
  TM-スポーンtaskmaster.example 8
マスター/スレーブの発見魔法の関数のようにいけない?あなた自身の目標を指定します。
  TM-マスターtaskmaster.example:GET_JOBS $ TM-スレーブtaskmaster.example:handle_job
<強い>
注:のすべての引数はオプションで、無認証キーでlocalhostにデフォルト設定されます。
の要件の:ます。
- Pythonの
コメントが見つかりません