Scheduler API
Contents
Functions for creating and managing scheduled jobs.
Usage
Add the following to your build.gradle
file:
dependencies {
include "com.enonic.xp:lib-scheduler:${xpVersion}"
}
Add the import
statement to your controller:
import schedulerLib from '/lib/xp/scheduler';
You are now ready to use the API.
Functions
get
Returns a 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
import {get as getJob} from '/lib/xp/scheduler';
const job = getJob({ name: 'myjob' });
if (job) {
log.info('Job is found: %s', JSON.stringify(job, null, 4));
} else {
log.info('Job not found');
}
const 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
import {list} from '/lib/xp/scheduler';
const jobs = list();
const 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
import {create} from '/lib/xp/scheduler';
const simpleOneTimeJob = create({
name: 'my-project',
descriptor: 'appKey:task',
enabled: true,
schedule: {type: 'ONE_TIME', value: '2021-01-01T00:00:00.00Z'}
});
const extendedCronJob = 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'}
});
const 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'
}
}
const 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
import {modify} from '/lib/xp/scheduler';
const result = 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;
}
});
const 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
import {delete as deleteJob} from '/lib/xp/scheduler';
const result = deleteJob({
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 |