1 Scheduler Cron Job
In order to work correctly the Scheduler needs a crontab entry in /etc/crontab
.
# Gentics Content.Node Scheduler * * * * * node /Node/bin/scheduler.sh >> /Node/node/log/scheduler.log 2>&1
2 Settings
By default, scheduler job runs that take longer than 24 hours, are automatically considered as invalid and will not be listed in the scheduler. However you can increase/decrease this limit in the configuration.
// Set the automatic invalidation to 2 days $MAX_SCHEDULE_RUNTIME = 172800;
3 Scheduler Control API
The API is invoked by using a HTTP GET request
http://[server]/.Node/?do=875&login=[login]&password=[password]&id=[id]&action=[action]
You need to set the following parameters for your request:
Parameter | Description |
---|---|
server | the domain name or IP address and port of your CMS server |
login | login of a user with access to the Scheduler Control API |
password | the user’s password |
id | the id of the Scheduler job to be modified |
action | action to be executed on the selected Scheduler job |
The id of a Scheduler job can be found by hovering with the mouse over it in the list of Scheduler jobs.
Actions
Action | Description |
---|---|
activate | will activate the job |
deactivate | will deactivate the job |
run | will run the job in the next possible time slot if it is already activated |
status | will return the status of the Scheduler job. This is the default action in case you provide no action at all |
suspend | will suspend the Scheduler |
resume | will resume the Scheduler |
3.1 API Response Format
The API will issue a XML response:
<?xml version="1.0"> <response> <!-- contains a response code --> <code>[response code]</code> <!-- additional information regarding your request --> <message>[message]</message> <!-- id will contain the job id --> <job id="[jobid]"> <!-- see statis information below --> <status>[status]</status> <!-- the job´s name --> <name>[name]</name> <!-- the job´s description --> <description>[description]</description> <!-- creator of the job --> <creator>[creator]</creator> <!-- date the job was created --> <created>[creation date]</created> <!-- last editor of the job --> <editor>[editor]</editor> <!-- date the job was changed the last time --> <edited>[edit date]</edited> <!-- last run date --> <lastrun>[last run]</lastrun> <!-- status of last run --> <lastrun_status>[status of last run]</lastrun_status> <!-- duration of last run --> <lastrun_duration>[duration of last run]</lastrun_duration> <!-- number of runs so far --> <runs>[number of runs]</runs> <!-- average execution time --> <average_duration>[average runtime]</average_duration> </job> </response>
3.1.1 Response Codes [response code]
Response Code | Description |
---|---|
200 | the request was processed successfully |
400 | invalid parameters |
403 | invalid permissions |
404 | could not find Scheduler job with provided id |
3.1.2 Status [status]
Value | Description |
---|---|
inactive | the job is deactivated and currently not running |
inactive-running | the job has been deactivated, but is currently running |
waiting | the job is waiting to be executed |
running | the job is currently running |
done | the job is planned for a single execution an has run successfully |
due | the job will run soon, but could not be started, because another job got preference |
3.1.3 Lastrun Status [status of last run]
Possible values are OK
if the last run was successful, or Failed
otherwise.
3.2 Examples
Activating a Scheduler job:
admin@server:~$ curl -i "http://server/.Node/?login=test&password=test&do=875&id=1&action=activate" HTTP/1.1 200 OK Date: Wed, 04 Feb 2009 12:22:21 GMT Server: Apache/2.2.4 (Unix) mod_ssl/2.2.4 OpenSSL/0.9.8e DAV/2 mod_jk/1.2.21 Set-Cookie: JSESSIONID=deleted; expires=Tue, 05-Feb-2008 12:22:21 GMT; path=/ Content-Length: 590 Content-Type: text/xml <?xml version="1.0"> <response> <code>200</code> <message>Job 1 was successfully activated.</message> <job id="1"> <status>due</status> <name>Publizierung (laufend)</name> <description></description> <creator>.Node Gentics</creator> <created>2007-02-08 10:05:25</created> <editor>test1 test</editor> <edited>2009-02-04 13:22:22</edited> <lastrun>2009-02-04 13:20:00</lastrun> <lastrun_status>OK</lastrun_status> <lastrun_duration>00:00:08</lastrun_duration> <runs>48364</runs> <average_duration>00:00:05</average_duration> </job> </response>
Suspending the Scheduler
admin@server:~$ curl -i "http://www.server.com/.Node/?login=test1&password=test&do=875&action=suspend"
4 Scheduler E-Mail Notification
In case of errors the Scheduler is able to send notification mails. Use the array $SCHEDULER_JOB_FAILURE_EMAIL
to configure notifications.
The Scheduler will send notification emails whenever a shell script that has been executed returns any other exit status than 0.
// receipient address $SCHEDULER_JOB_FAILURE_EMAIL["to"] = 'admin@emailaddress.com'; // sender address $SCHEDULER_JOB_FAILURE_EMAIL["from"] = 'root@myserver.com'; // email subject $SCHEDULER_JOB_FAILURE_EMAIL["subject"] = 'Scheduler Run Failed: #name#'; // email body $SCHEDULER_JOB_FAILURE_EMAIL["body"] = "Scheduler Run Failed '#name#' Command: #cmd# ReturnValue: #returnvalue# StartTime: #starttime# EndTime: #endtime# Output: #output#";
In "subject"
and "body"
the following contents will be replaced with actual data of the scheduler job:
Tag | Description |
---|---|
#name# | name of the Scheduler task |
#cmd# | shell command that has been invoked |
#returnvalue# | return value |
#output# | output of the shell script |
#starttime# | time the shell script was started |
#endtime# | time the shell script finished |
5 Scheduler Purge Tasks
Scheduler purge tasks are already available on your system and allow you to execute database maintenance scripts in a regular fashion. This is the basic command for all purge tasks:
. /Node/bin/env.sh; /Node/.node/sh.php do=827 cmd=[command] CONFIGFILE=/Node/etc/node.conf 2>&1
For command
one of the following commands may be used:
5.1 purgelogs
Will remove old log entries from the system. The following data will be purged:
- User activities
- Error messages and warnings
- Scheduler task information
The variable $CN_KEEPLOGS
allows you to define, when data will be deleted:
// delete logs older than 12 months (default value) $CN_KEEPLOGS = 12;
5.2 purgeversions
The command purgeversions
will delete page versions older than $CN_VERSIONAGE
months.
// delete page versions older than 12 months (default value) $CN_VERSIONAGE = 12;
5.3 purgemessages
The command purgemessages
will delete inbox messages older than $KEEP_INBOX_MESSAGES
months.
// delete inbox messages older than 12 months (default value) $KEEP_INBOX_MESSAGES = 12;