Qorus Integration Engine®
5.1.31_git
|
Jobs are simple tasks that have a schedule, similar to a cron job. Each time a job executes, a record is created in the database storing its status. The system supports a set of system APIs for controlling jobs as well as providing job configuration and status information.
Jobs are also members of interface groups; if a job is a member of a disabled group, then then job will not run when scheduled, even if it is active.
When jobs are scheduled and executed, log file entries are created; see System, Service, Workflow, and Job Logging for more information about log file locations and file formats.
Jobs have the following attributes:
Job Attributes (table: JOBS
)
Name | Description |
name | The name of the job |
version | Version string for the job object; this version is informative; only one version of a job is stored in the database at a time |
description | Description of the job object |
sessionid | If the job is currently running on a Qorus instance, then this attribute will have a value, otherwise it will not be set |
active | A boolean value giving the active status of the job; inactive jobs will not be scheduled and run |
run_skipped | A boolean value telling the system if the job should be run immediately if the last scheduled run was missed due to system downtime |
code | The code for the job; the job's Program object will be created out of this code and any library objects associated with the job; the resultant program will have its run() function executed when the job is executed |
last_executed | The last execution date/time of the job; will not have a value if the job has never been run |
last_executed_job_instanceid | The last executed instance id of the job |
expiry_date | The optional expiration date of the job |
recurring | a schedule duration in seconds; if present the job will be scheduled to run every n seconds where n is the value assigned to this attribute; either this or the Cron Schedule Fields attributes will be set, but not both |
Cron Schedule Fields | the cron schedule fields are as follows: minute, hour,day,month,wday , see Job Schedule for more information on the meanings of these fields; either these attributes or the recurring attribute will be set, but not both |
Library Objects | A set of functions, classes, and constants that will be loaded into the workflow's program space; defined in table: JOB_LIB |
Tags | A list of user-defined tags for the job, stored in the JOB_TAGS table |
When jobs are executed, an entry in the JOB_INSTANCE
table is created to track the status of processing the job.
Job instance rows have the following attributes: Job Instance Attributes
Name | Description |
job_instanceid | The job instance ID |
jobid | The ID of the type of job that was executed |
sessionid | The Qorus application session ID of the controlling session when the job was executed |
jobstatus | The status of executing the job; see Job Data Status Descriptions for possible values |
info | An optional YAML-encoded field of information related to job processing; data will only be present in this field if the job calls JobApi::saveInfo() |
started | The date/time the job was scheduled and started |
completed | The date/time the scheduled job compelted processing |
Additionally, the JOB_STATE_DATA
table is used to store persistent data related to job processing to aid in recovering jobs in case of errors. This table has one row for each job; the row for the job is cleared if the job has a OMQ::StatComplete status. Job state can be stored using JobApi::saveStateData() and retrieved with JobApi::getStateData().
Additionally, the JOB_PERSISTENT_STATE_DATA
table is used to store persistent data related to job processing independently of error recovery. This table has one row for each job; unlike job state data, the row for the job is not cleared when the job gets a OMQ::StatComplete status. Job state can be stored using JobApi::savePersistentStateData() and retrieved with JobApi::getPersistentStateData().