A distributed task scheduling method and system that separates and
performs task management and task execution on separate computing devices
and distributes task execution over multiple computing devices. The
distributed task scheduler includes two-tier architecture having at least
one execution host and at least one data broker. The execution hosts
handle the tasks and the data broker manages the task schedule. The data
broker determines any scheduled tasks that need to be executed. Once an
available task is found, the data broker dispenses the scheduled task to
an execution host. A timeout period is selected for each assigned task.
If the assigned execution host does not report back to the data broker
within the timeout period the completion of the assigned task, the data
broker is free to assign the task to another execution host to ensure
reliable execution of the task.