Skip to content

$.jobs

$.jobs represents an XS scheduled job.

Overview

Sample usage:

Create a definition.xsjob file in a project named xsjob_demo:

{
    "description": "My Job configuration",
        "action": "xsjob_demo:handler.xsjslib::writeInDB",
        "schedules": [
        {
            "description": "Execute every 5 seconds",
            "xscron": "* * * * * * */5",
            "parameter": {
            }
        }
    ]
}

Create a handler.xsjslib file in the xsjob_demo project:

function writeInDB() {
    let connection;
    try {
        connection = $.db.getConnection();

        let insertStatement = connection.prepareStatement("INSERT INTO XSJOB_DEMO (EXECUTED_AT) VALUES (CURRENT_TIMESTAMP)");
        insertStatement.executeUpdate();
        insertStatement.close();
    } catch(e) {
        connection.rollback();
        console.log("Transaction was rolled back: " + e.message);
    } finally {
        connection.close();
    }
}

And now, to use the API, create a trigger.xsjs file:

let job = new $.jobs.Job({
    uri: "xsjob_demo/definition.xsjob"
});

// execute the job for 60 seconds, starting from now
job.configure({
    status: true,
    start_time: new Date(),
    end_time: new Date(Date.now() + 60000)
});

Functions

Function Description Returns
activate() Activates an XS Job that has already been configured. -
configure(config) Configure an XS Job. The function provides additional means to programmatically configure an XS Job. Configuration must be done prior to activate/deactivate an XS Job. -
deactivate() Deactivates an XS Job that has already been configured. -
getConfiguration() Retrieve current configuration of an XS Job as object. Object