Patent ID: 8782659

Claim:
A method of allocating processing tasks between a plurality of processing resources, each of said processing resources having associated therewith one or more queues for holding tasks awaiting processing, each of said tasks having a task-type indication identifying the task as belonging to one of a plurality of predetermined task-types, at least a first one of said plurality of processing resources being associated with at least one other of said processing resources from which said first processing resource is capable of obtaining information and to which said first processing resource is permitted to transfer tasks; the method comprising said first processing resource performing the following steps; monitoring the presence and withdrawal of tasks in said one or more queues associated with said first processing resource and obtaining therefrom, for each of a plurality of task-types, a load-value indicative of the number of tasks of that task-type awaiting processing and a withdrawal rate value indicative of a rate at which tasks of that task-type are being withdrawn from said one or more queues without having been processed by said first processing resource; in respect of each of said plurality of task-types, obtaining information from at least one other processing resource with which said first processing resource is associated indicating the number of tasks of that task-type awaiting processing in a queue associated with said other processing resource; in respect each of a plurality of task-types for which said first processing resource has a higher number of tasks of that task-type awaiting processing in an associated queue than said other processing resource, obtaining, using at least one computer processor, in dependence on said obtained withdrawal rates a relative withdrawal rate value indicative of the rate at which tasks of that task-type are being withdrawn without having been processed, relative to the rate at which tasks of one or more others of said plurality of task-types are being withdrawn without having been processed; selecting one of said plurality of task-types in dependence on said relative withdrawal rate values and transferring one or more tasks of that task-type to said other processing resource.