Methods, systems, computer program products, and methods of doing business
by improving the scheduling of execution of jobs for or by network-connected devices,
thereby enabling the job execution process to scale more easily, efficiently, and
effectively to support large numbers of devices and/or users. Examples of jobs
include, but are not limited to, distribution of resources (including software,
configuration information, images, and other types of content) to a device, fetching
a device's inventory information, backing up a device's contents, and so forth.
Jobs are programmatically scheduled based upon a specified time internal, according
to a class of the requester. Only if an earliest start time after which the job
may be executed for this requester has been reached will the job be executed, otherwise,
the job execution is delayed. The disclosed techniques lessen the need for additional
servers to handle spikes in processing load, reduce the likelihood of reaching
system overload, and reduce the likelihood of cascading failures that may occur
when systems are overloaded.