Dispatching Tasks

When a scanner has available capacity for tasks, it polls for and is assigned additional tasks from the jobs that have filled the scanner’s job capacity. Tasks are assigned from each job in succession, in a round robin method, similar to the way jobs are assigned to scanners in a group. This will be a test.

The way the tasks are dispatched to scanners varies depending on the scenario.

Example Scenario: One Scanner with One Job

In this example, assume there is one scanner with a single job queued. This scanner is not a part of a scanner group and as such processes scan jobs one at a time in the order the jobs are queued. This scanner has a task capacity of six. When the job is broken down into tasks, six of those tasks are assigned to the scanner to be executed simultaneously. Tasks continue to fill the scanner’s task capacity until the scan job is completed.

Example Scenario: One Scanner with Multiple Jobs

In this example, assume there is one scanner with multiple jobs queued. The scanner belongs to two scanner groups, SG1 and SG2. Three scan jobs are created. The first scan was configured to use the scanner directly. The other two scans were configured to use SG1 and SG2, respectively.

Because the first scan job was configured to use that particular scanner, it is added to the scanner’s job queue. In the case of SG1 and SG2, the scanner happens to be next in the order of scanners to receive jobs in both groups. The jobs from those groups are also added to the scanner’s job queue.

This scanner has a job capacity of three, so the scanner is able to be assigned tasks from all three jobs.

This scanner has a task capacity of five. Tasks are assigned to the scanner one at a time from each job in succession. In this case, tasks would be assigned in the following order: Job 1, Job 2, Job 3, Job 1, Job 2, filling the task capacity. Using this “round robin” method, the scanner begins working on two tasks from the first job, two tasks from the second job, and one task from the third job. When one of the tasks is completed, the next task from the third job is then dispatched.

Example Scenario: Multiple Scanners with Multiple Jobs

In this example, assume there are two scanners, Scanner 1 and Scanner 2. Both scanners are assigned to a scanner group, SG1. Both Scanner 1 and Scanner 2 have a job capacity of three.

Two scan jobs are created. Job 1 is assigned directly to Scanner 1. Job 2 is assigned to SG1. Both Jobs are broken down into Tasks. Job1 will only be worked by Scanner 1. Job 2 can be worked by both Scanner 1 and Scanner 2.

Both Scanner 1 and Scanner 2 have a task capacity of six. Scanner 1 is assigned tasks one at a time from each job in succession, three from Job 1 and three from Job 2. Scanner 2 is assigned six tasks from Job 2.

Tasks for Job 2 are dispatched to Scanner 1 and Scanner 2 from SG1 as task capacity becomes available for the scanners. This process continues until both jobs are completed.