Scheduler library
Contents
Functions for creating scheduled jobs.
Usage
Add the following to your build.gradle
file:
dependencies {
include "com.enonic.xp:lib-scheduler:${xpVersion}"
}
In your JavaScript controller, add a require statement:
var schedulerLib = require('/lib/xp/scheduler');
Functions
get
Returns scheduled job with the specified name.
Parameters
Name | Type | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
params |
object |
JSON with the parameters
|
Returns
object : (ScheduledJob
) Detail information for the job. Or null if the job could not be found.
Example
var job = schedulerLib.get({ name: 'myjob' });
if (job) {
log.info('Job is found: ' + JSON.stringify(job));
} else {
log.info('Job not found');
}
var expected = {
'name': 'myjob',
'descriptor': 'com.enonic.app.myapp:mytask',
'description': 'cron job description',
'enabled': true,
'config': {
'a': 1,
'b': 'value',
'c': {
'd': {
'e': 3.6,
'f': true
}
}
},
'user': 'user:system:user',
'creator': 'user:system:creator',
'modifier': 'user:system:creator',
'createdTime': '2016-11-02T10:36:00Z',
'modifiedTime': '2016-11-02T10:36:00Z',
'lastRun': '2021-02-25T10:44:33.170079900Z',
'lastTaskId': 'task-id',
'schedule': {
'value': '* * * * *',
'type': 'CRON',
'timeZone': 'GMT+2:00'
}
};
list
Returns the list of scheduled jobs.
Returns
Array : (ScheduledJob[]
) List of all scheduled jobs.
Example
var jobs = schedulerLib.list();
var expected = [
{
'name': 'job1',
'descriptor': 'appKey:task',
'description': 'job description',
'enabled': true,
'config': {
'a': 1
},
'user': 'user:system:user',
'creator': 'user:system:creator',
'modifier': 'user:system:creator',
'createdTime': '2016-11-02T10:36:00Z',
'modifiedTime': '2016-11-02T10:36:00Z',
'lastRun': '2021-02-25T10:44:00.170079900Z',
'lastTaskId': 'task-id',
'schedule': {
'value': '* * * * *',
'timeZone': 'GMT+05:30',
'type': 'CRON'
}
},
{
'name': 'job2',
'descriptor': 'appKey:task',
'description': 'job description',
'enabled': false,
'config': { },
'user': 'user:system:user',
'creator': 'user:system:creator',
'modifier': 'user:system:creator',
'createdTime': '2021-02-02T10:36:00Z',
'modifiedTime': '2021-02-02T10:36:00Z',
'schedule': {
'value': '2012-01-01T00:00:00Z',
'type': 'ONE_TIME'
}
}
];
create
Creates a scheduled job .
This function returns immediately.
Parameters
Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
params |
object |
JSON with the parameters
|
Returns
object : (ScheduledJob
) Detail information for the created job.
Example
var simpleOneTimeJob = schedulerLib.create({
name: 'my-project',
descriptor: 'appKey:task',
enabled: true,
schedule: {type: 'ONE_TIME', value: '2021-01-01T00:00:00.00Z'}
});
var extendedCronJob = schedulerLib4.create({
name: 'myjob',
descriptor: 'appKey:task',
description: 'job description',
user: 'user:system:user',
enabled: true,
config: {
a: 1,
b: 2,
c: ['1', '2'],
d: {
e: {
f: 3.6,
g: true
}
}
},
schedule: {type: 'CRON', value: '* * * * 5', timeZone: 'GMT-2:00'}
});
var expectedSimpleOneTimeJob = {
'name': 'my-project',
'descriptor': 'appKey:task',
'enabled': true,
'config': {},
'creator': 'user:system:creator',
'modifier': 'user:system:creator',
'createdTime': '2016-11-02T10:36:00Z',
'modifiedTime': '2016-11-02T10:36:00Z',
'schedule': {
'value': '2012-01-01T00:00:00Z',
'type': 'ONE_TIME'
}
}
var expectedExtendedCronJob = {
'name': 'myjob',
'descriptor': 'appKey:task',
'description': 'job description',
'enabled': true,
'config': {
'a': 1,
'b': 2,
'c': {
'0': '1',
'1': '2'
},
'd': {
'e': {
'f': 3.6,
'g': true
}
}
},
'user': 'user:system:user',
'creator': 'user:system:creator',
'modifier': 'user:system:creator',
'createdTime': '2021-01-01T10:36:00Z',
'modifiedTime': '2016-01-01T10:36:00Z',
'schedule': {
'value': '* * * * 5',
'timeZone': 'GMT-02:00',
'type': 'CRON'
}
}
modify
Modifies a job. The previous task will be rescheduled, lastRun
and lastTaskId
properties will be cleaned.
Parameters
Name | Type | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
params |
object |
JSON with the parameters
|
Returns
object : (ScheduledJob
) Detail information for the modified job.
Example
var result = schedulerLib.modify({
name: 'myjob',
editor: (edit) => {
edit.descriptor = 'appKey:new-task';
edit.description = 'new job description';
edit.user = 'user:system:new-user';
edit.enabled = false;
edit.config = {
a1: 3
};
edit.schedule = {type: 'CRON', value: '* * * * *', timeZone: 'GMT+5:30'};
return edit;
}
});
var resultExpected = {
'name': 'myjob',
'descriptor': 'appKey:new-task',
'description': 'new job description',
'enabled': false,
'config': {
'a1': 3
},
'user': 'user:system:new-user',
'creator': 'user:system:creator',
'modifier': 'user:system:modifier',
'createdTime': '2016-11-02T10:36:00Z',
'modifiedTime': '2021-02-25T10:44:33.170079900Z',
'schedule': {
'value': '* * * * *',
'timeZone': 'GMT+05:30',
'type': 'CRON'
}
}
delete
Deletes a scheduled job.
Parameters
Name | Type | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
params |
object |
JSON with the parameters
|
Returns
boolean : True if deleted, false otherwise
Example
var result = schedulerLib.delete({
name: 'myjob'
});
if (result) {
log.info('Job deleted');
} else {
log.info('Job was not found');
}
Type Definitions
ScheduledJob
Type
object
Properties
Name | Type | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name |
string |
Job name |
||||||||||||
description |
string |
Job description |
||||||||||||
descriptor |
string |
descriptor of the task to be scheduled |
||||||||||||
config |
object |
config of the task to be scheduled |
||||||||||||
schedule |
object |
task time run config
|
||||||||||||
user |
string |
principal key of the user that submitted the task |
||||||||||||
enabled |
boolean |
job is active or not |
||||||||||||
creator |
string |
principal key of user that created the task |
||||||||||||
modifier |
string |
principal key of the last user that modified the task |
||||||||||||
createdTime |
string |
time of the task creation |
||||||||||||
modifiedTime |
string |
time of the last task modification |
||||||||||||
lastRun |
string |
time of the last job run |
||||||||||||
lastTaskId |
string |
task id of the last job run |