Scheduling
Triggers, Dependencies, Named Times and Dates all control when a Job runs.
The Life of a Job: Scheduling & Execution
In JAMS, running a Job is rarely as simple as clicking a "Start" button. A Job goes through a specific lifecycle governed by Schedule Items.
These items control the Before, During, and After of a Job's execution:
- Triggers: "Run this Job..." What causes the Job to be submitted.
- Dependencies: "This Job depends on..." What must be true before it starts.
- Job Status: "Set this Job's status to..." Monitors for runaway, short, or stalled conditions based on expected runtime.
- Events and Notifications: "When an event occurs..." What to do when a Job is running, completes, or fails.
- Reports: "Send a report..." Delivering the audit trail.
Just like security settings, any Schedule Item set on a Folder is automatically inherited by the Jobs beneath it. (Note: A few items, like Interval and Recurrence Triggers, are Job-level only).
Submission and execution are two separate moments
A Trigger submits the Job. A Dependency decides whether the resulting Entry may start.
Dependencies are not evaluated until the Job has been submitted and the Entry exists in the Monitor. Until then nothing is being checked. When the Entry reaches its hold time and its conditions are not met, it sits in the Monitor with a state of Waiting for Prerequisites rather than failing.
So a Job with an unsatisfied Dependency and no Trigger is not late. It was never submitted.
Triggers
A Trigger watches for a condition and submits the Job when it occurs. After the Job completes, the Trigger resets and JAMS watches for the next occurrence. The Job is not submitted again until the condition is met again.
The condition is either a time or an event:
- Schedule: a date and a time, written in natural language such as 1st Friday of Month.
- Interval: a fixed period, such as every 15 minutes. Intended for Jobs that run all day, every day.
- Recurrence: a repeating run inside a window, such as every hour from 8am to 5pm on weekdays, for when an Interval is too blunt. It comes in two forms, one that reuses the same Monitor Entry and one that creates a new Entry on each run.
- Job Completion: another Job completing, or failing.
- File: a monitored file becoming present, available or absent.
- Variable: the value of a Variable changing.
- Email: mail arriving in a monitored mailbox.
Dependencies
A Dependency is a precondition. A Job or Folder can have any number of them, and all must be satisfied before the Entry starts executing.
When the built-in conditions do not cover what you need, a Pre-Check Job does. It is an ordinary Job that JAMS submits on your behalf when the main Job is ready to run; the main Job stays pending until the Pre-Check completes successfully. That is the escape hatch for any precondition JAMS does not model directly.
Named Times
A Named Time is a window during which Jobs are allowed to run, defined once and referenced by as many Jobs as you like. JAMS can hold a Job until its window opens, and act if the window closes while the Job is still running.
Use a Named Time when the constraint belongs to the business rather than to the Job, for example a nightly batch window that a dozen Jobs all have to respect.
Dates and Date Types
Dates mark days that matter to your organisation. Date Types define the classes of those days rather than the days themselves.
The distinction matters when your calendar is not the civil one. JAMS reads "first day of April" as 1 April in the current calendar year, but an organisation running fiscal accounting periods needs a different answer, and Date Types are how it gets one.
Related topics
The Schedule tab, where every condition for running a Job is set as a Schedule Item.
TriggersSubmit a Job when something changes in the environment rather than at a fixed time.
DependenciesHold a submitted Job until its prerequisite condition has been satisfied.
Named TimesDefine a window when Jobs are allowed to run, and alert when one runs outside it.
CalendarsDate Types that decide which days a Job runs and which days it is skipped.
Specifying Dates Using Natural LanguageWrite a date as Workdays or First Friday of Month instead of an exact one.