Let’s define the major subsystems or building blocks of enterprise job scheduling: the job scheduler itself, batch execution engine, event monitoring, user interface, queueing mechanism, and records and storage.
The schedule of your workflows can be as simple or as complex as possible. A user defines when the jobs are going to run, which could be as simple as running a job every 15 minutes or running it at 2:00p.m. on Tuesday and it can be as complicated as running a job the third day from the end of the month—but not when it’s a weekend. Job scheduling tools help you to build a schedule with these types of nuances. In turn, a job scheduler traditionally handles forecasting, which lets you know when jobs are going to run in the future. This is helpful for the user or the manager because they can look ahead to see gaps in the schedule and plan for other jobs.
Another important subsystem of enterprise job scheduling is the batch execution engine. Batch scheduling was borne from the days of punch-cards. Today, batch scheduling refers to running software that does not require human interaction. The most important component of batch job scheduling is setting up the environment. Another component of batch scheduling is running commands and capturing both the errors and the output that come from those commands. Finally, automated error recovery is important for managing your batch schedule. If you have a job that fails in a certain way because, say, the network is down, the system will automatically recover it and try again to run the job successfully.
Event monitoring is a newer concept to enterprise job scheduling. With event monitoring, the enterprise scheduler watches for a certain condition on a computer or in the network. When it sees that condition, it will react accordingly to move the workflow forward. Event monitoring allows for recording those events: you can look at the events that kick off certain batch jobs, which helps you track the dependencies and event-driven nature of your job schedule. This grants you greater visibility into your job schedule and helps you see the building blocks of each workflow and how they rely on and react to each other.
The user interface is the key to working with your enterprise job scheduling tool. The user interface is where you define the work to be done as well as define the environment in which the work will be done, which includes the path and environment variables. The user interface also provides a glimpse into what programs are running on the system and what jobs are currently running.
Queueing is critical to a successful enterprise job schedule because it ensures that things run in the correct priority order. You want your most important jobs to be scheduled and completed before other less important jobs. Another key feature to queueing with an enterprise scheduler is the ability to place a hold on your execution. This means that you can stop a queue and prevent all the jobs in it from running. You would want to place a hold on execution if there’s a problem with the system; for example, if the disk is filling up and you’ll be out of disk space soon, you’ll want to stop the job queue from continuing to run until there’s more space available. Load balancing is central to an enterprise job schedule, which helps you make the most of your resources. Load balancing limits the number of things that will run on a system, which keeps the schedule humming at an efficient and manageable level.
Records and Storage
The final building block of an enterprise job scheduling tool is records and storage. Anything that you’re defining in the user interface, including jobs and environments, should be stored and backed up via a high availability server. You should also consider storing all of your events as well as your job history. Auditing is an important function of any scheduling tool: not only can you track the long-term behavior of your jobs, but auditing features also make you aware of who is making changes to the schedule and when, which is important when the auditor comes knocking.
Understanding these principle features of enterprise job scheduling will help you to choose a tool that will maximize your resources and help you build an efficient and effective job scheduler.