2011-02-09 10 views
5

"労働者"のデザインパターンとは何ですか?労働者のデザインパターン

+1

あなたはマスター/ワーカーのパターンを意味していますか? –

+0

私が「労働者」と考えるとき、私は "仕事"について考えるのを助けることができません。作業者はジョブのキューイング/ディスパッチを処理し、ジョブは個別の作業単位であり、潜在的には「繰り返し可能」などの状態があります。 –

答えて

7

worker thread patternの後に、キューを使用してワーカースレッドによって「オフライン」で処理するタスクをスケジュールすることができます。 一部のソリューションでは、パラレル化を利用してパフォーマンスを向上させるためにシングルスレッドの代わりにpool of worker threadsを使用します。

+6

最初のリンクは死んでいます:/ – Dan

+0

Jap、throws 404 :( –

2

MapReduceのようなものが気になります。ワーカーノードで複数のタスクを並列に実行できる場所。

編集:@ larsmansに言及したように、これはMaster/Workerパターンと呼ばれます。

+0

デッドリンクはhttps://docs.gigaspaces.com/sbp/master-worker-patternを試してください。 html – wmitchell

8

ワーカーデザインパターン問題

:あなたは、データと

  • は、あなたがしたい、そのオブジェクトに実行することができる操作 の大規模なセットで小さなオブジェクトを持って

    • オブジェクトのメソッドリストを小さく維持する
    • 操作は異なる方法を含むさまざまな方法で行うことができます

        :ENT 実装は
      • あなたの小さなオブジェクトは読み取り専用とバッチ処理へ
      • は、あなたがしたい データ抽象化層から小さなオブジェクト

      ソリューションの数を自分自身を保存する方法を知っています

    • ワーカーのアクセサーAPIを定義するワーカーインターフェースと、件名を追加する方法
    • あなたがあなたの労働者が変換を行い、あなたの被写体が
    • あなたの被写体が軽量

    に例保たれている変換された被写体

  • ごとに複数の労働者を持つことができます:あなたのImageBinaryオブジェクトが表す

    を高さと幅を含むイメージバイナリ(メタデータはデカップリングされています)。サイズ変更、クロッピング、スケーリングなど、このオブジェクトに対してさまざまな操作を実行します。

    $image1 = new ImageBinary(array(‘id’ => 1)); 
    $image2 = new ImageBinary(array(‘id’ => 2)); 
    $image3 = new ImageBinary(array(‘id’ => 3)); 
    
    $worker = new ImageWorker;$worker->add($image1);$worker->add($image2);$worker->add($image3);$worker->rotate(90); 
    

    関連パターン

    • マネージャー
    • アダプタ
  • 関連する問題