Game Development Reference
A job can be defined as a unit of work orchestrated by a computer to perform a task
in an automated fashion. Multiple jobs can be composed together to form a larger
workflow process, or they can operate independently of each other. Jobs can be run
at a specific date and time or on a reoccurring basis specified by a time span interval.
The job scheduler is typically responsible for the continuous monitoring and noti-
fication of processes and event-driven jobs, scheduling of operational reports, and
the monitoring of performance. Jobs are registered with the scheduler, and it is the
duty of the scheduler to provide the mechanism that ensures the orderly and timely
processing of the jobs at the time or interval specified.
Most of the leading scheduling systems provide a graphical user interface that
offers a single point of control for a distributed environment of processes. This
chapter addresses the development of a reusable core framework that offers a flex-
ible mechanism for generic job scheduling.
Most companies have a multitude of processes and workflows that define how
their business operates. There are some significant benefits that result from the
integration of all the disparate processes into a cohesive and automated workflow.
It is a commonly known fact that an automated process will be more reliable and
less prone to error than a human operator. The less time required from human
effort to perform a particular task will free that human effort for assignment to
more thought-intensive problems, resulting in a considerable cost savings.
Another benefit is the increase in productivity. Almost every software company,
especially within the gaming industry, is faced with the dilemma that product
development must be crunched into a seemingly impossible time span. Batch pro-
cessing and workflow automation allow for an increase in the amount of work
performed in a shorter period of time.
Aside from the financial and increased resource gains, there are a number of oper-
ational and quality assurance benefits that result from automation. Human effort
is prone to errors, whereas a properly configured computerized job will execute in
the same manner every time it is run, reducing the probability of error.
It may seem silly, but the key goal of the solution is to support the automation of
processes. The user should be able to define a job, register the job within the sched-
uler, and feel confident that the process will be executed at the appropriate time.