ディスパッチタスク
スキャナーにタスクに対応できる能力がある場合、スキャナーのジョブ能力を消費したジョブからの追加タスクのポーリングが行われ、それらのタスクがスキャナーに割り当てられます。ジョブがグループ内のスキャナーに割り当てられる方法と同じように、ラウンドロビン方式で順次、各ジョブからタスクが割り当てられます。これはテストとなります。
タスクがスキャナーにディスパッチされる方法は、シナリオによって異なります。
シナリオの例: 1 つのジョブに 1 つのスキャナー
この例では、キューされたジョブが 1 つとスキャナーが 1 個あると仮定します。このスキャナーはスキャナーグループの一部ではなく、ジョブがキューされた順番で、1 つずつスキャンジョブを処理します。このスキャナーのタスク能力は 6 件です。ジョブがタスクに分けられると、そのタスクのうちの 6 つがスキャナーに割り当てられ、同時に実行されるようにします。スキャンジョブが完了するまで、タスクはスキャナーのタスク能力を消費し続けます。
シナリオの例: 複数ジョブを処理する 1 つのスキャナー
この例では、キューされた複数のジョブと 1 個のスキャナーがあると仮定します。スキャナーは 2 つのスキャナーグループ、SG1 と SG2 に属しています。3 つのスキャンジョブが作成されました。最初のスキャンはスキャナーを直接使用するように設定されています。他の 2 つのスキャンはそれぞれ SG1 と SG2 を使用するように設定されています。
最初のスキャンジョブは特定のスキャナーを使用するように設定されているため、スキャナーのジョブキューに追加されます。SG1 と SG2 では、このスキャナーは両方のグループで次にジョブを受領する順番になっています。それらのグループからのジョブもスキャナーのジョブキューに追加されます。
このスキャナーのジョブ能力は 3 件のため、スキャナーには 3 つすべてのジョブからのタスクを割り当てを受けることができます。
このスキャナーのタスク能力は 5 件です。タスクは、各ジョブから 1 つずつ連続してスキャナーに割り当てられます。この場合、タスクは次の順番で割り当てられます。ジョブ 1、ジョブ 2、ジョブ 3、ジョブ 1、ジョブ 2 と、タスク能力を満たしていきます。この「ラウンドロビン」方式を使用し、スキャナーは最初のジョブからの 2 つのタスクの作業を開始し、2番目のジョブの2 つのタスク、3 番目のジョブの1 つのタスクと続けます。タスクの 1 つが完了すると、3 番目のジョブから次のタスクがディスパッチされます。
シナリオの例: 複数ジョブに複数のスキャナー
この例では、2 つのスキャナー (スキャナー 1 とスキャナー 2) があると仮定します。スキャナーは両方ともスキャナーグループ SG1 に割り当てられています。スキャナー 1 とスキャナー 2 のジョブ能力は、それぞれ 3 件です。
2 つのスキャンジョブが作成されました。ジョブ 1 はスキャナー 1 に直接割り当てられました。ジョブ 2 は SG1 に割り当てられました。ジョブは両方ともタスクに分解されます。ジョブ 1 はスキャナー 1 によってのみ処理されますジョブ 2 はスキャナー 1 とスキャナー 2 の両方で処理される可能性があります。
スキャナー 1 とスキャナー 2 のタスク能力は、それぞれ 6 件です。スキャナー 1 には、各ジョブから 1 つずつ連続してタスクが割り当てられます。(ジョブ 1 から 3 件、ジョブ 2 から 3 件。)スキャナー 2 には、ジョブ 2 から 6 件のタスクが割り当てられます。
各スキャナーがタスクに対応できるようになると、ジョブ 2 のタスクは SG1 からスキャナー 1 とスキャナー 2 にディスパッチされます。この処理は両方のジョブが完了するまで続きます。