This documentation is for WSO2 Enterprise Service Bus version 4.9.0 . View documentation for the latest release.

All docs This doc

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

A task runs a piece of code triggered by a timer, allowing you to run scheduled jobs at specified intervals. A task can be scheduled in the following ways:

  1. Using count and interval attributes to run the task a  specified number of times at a given interval .
  2. Giving the scheduled time as a cron style entry.
  3. Making the task run only once after the ESB starts by using the once attribute.

Having deployed a task implementation to the ESB runtime (see Writing Tasks), you can use the ESB Management Console to add a task to the "Tasks" list and schedule various instances of the task. You can use either UI configuration  or XML configuration to add and schedule tasks.

...

UI Configuration

Follow the instructions below to add and schedule a task in ESB Management Console.

1. Sign in. Enter your user name and password to log in to the ESB Management Console.

2. Click Main in the left menu to access the Manage menu.

Image Removed

3. In the Manage menu, click Scheduled Tasks under Service Bus.

Image Removed

4. The Scheduled Tasks page appears, where you can add, edit, and delete tasks.

Image Removed

5. Click Add Task.

Image Removed

6. The New Scheduled Task page appears. Enter the required details into the fields.

  • Task Name - Name of a scheduled task.
  • Task Group - The group name to grouping tasks. The group name synapse.simple.quartz belongs to ESB - Synapse. All available groups are displayed as a drop-down menu. If there are tasks belong to some other domains, for example WSO2 Mashups tasks, then those will be shown here as a separate group names.
  • Task Implementation - The implementation class of the task. To use the default task implementation that is available with the ESB (and therefore can be used without downloading any third-party libraries or custom JARs), specify  org.apache.synapse.startup.tasks.MessageInjector. This class simply injects a specified message into the Synapse environment at ESB startup. For more information on writing custom task implementations, see Writing Tasks.
  • Trigger Type- Trigger type for the task. This can be selected as either "Simple" or "Cron."
    • Simple Trigger - Defined by specifying a count and an interval, implying that the task will run a count number of times at specified intervals.
      • Count - The number of times the task will be executed.
      • Interval - The interval between consecutive executions of a task.
    • Cron Trigger - Defined using a cron expression.

Image Removed

7.

Anchor
task_handling_cluster
task_handling_cluster

Info
titleTask handling in a clustered environment

In a clustered environment, tasks are distributed among server nodes according to the round-robin method, by default. If required, you can change this default task handling behavior so that tasks are distributed randomly, or according to a specific rule. This is a server-level setting that is configured in the tasks-config.xml file.

  • See Configuring the Task Scheduling Component for instructions on configuring the task handling behavior at server-level.
  • You can also configure the task handling behavior at task-level, by specifying the Pinned Servers for a task. Note that this setting overrides the server-level configuration.

Also, note that a scheduled task will only run on one of the nodes (at a given time) in a clustered environment. The task will failover to another node, only if the first node fails.

Having deployed a task implementation to the ESB runtime (see Writing Tasks), you can use the ESB Management Console to add a task to the "Tasks" list and schedule various instances of the task. You can use either UI configuration or XML configuration  to add and schedule tasks, as explained below.

Anchor
UI configuration
UI configuration
UI Configuration

Follow the instructions below to add and schedule a task in ESB Management Console.

  1. Sign in. Enter youruser nameand password to log in to the ESB Management Console.
  2. Click Main in the left menu to access the Manage menu.
    Image Added
  3. In the Manage menu, click Scheduled Tasks under Service Bus.
    Image Added
  4. The Scheduled Tasks page appears, where you can add, edit, and delete tasks.
    Image Added
  5. Click Add Task.
    Image Added
  6. The New Scheduled Task page appears. Enter the required details into the fields.
    1. Task Name - Name of a scheduled task.
    2. Task Group - The group name to grouping tasks. The group name synapse.simple.quartz belongs to ESB - Synapse. All available groups are displayed as a drop-down menu. If there are tasks belong to some other domains, for example WSO2 Mashups tasks, then those will be shown here as a separate group names.
    3. Task Implementation - The implementation class of the task. To use the default task implementation that is available with the ESB (and therefore can be used without downloading any third-party libraries or custom JARs), specify  org.apache.synapse.startup.tasks.MessageInjector. This class simply injects a specified message into the Synapse environment at ESB startup. For more information on writing custom task implementations, see Writing Tasks.
    4. Trigger Type- Trigger type for the task. This can be selected as either "Simple" or "Cron."
      • Simple Trigger - Defined by specifying a count and an interval, implying that the task will run a count number of times at specified intervals.
        • Count - The number of times the task will be executed.
        • Interval - The interval between consecutive executions of a task.
      • Cron Trigger - Defined using a cron expression.
    5. Anchor
      pinned_servers
      pinned_servers
      Pinned Servers - The list of ESB server nodes that will run the task. You can specify the IP addresses of the required nodes. 

      Info

      This setting can be used if you want the task to run on a selected set of nodes in an ESB cluster. Note that the task will only run on one of the nodes at a time. It will failover to another node, only if the first node fails.

      As explained above, pinned servers will override the default task handling behavior defined at server-level (for this particular task). However, if rule-based task handling is specified at server-level, you need to ensure that the same server nodes you specify as pinned servers for the task are also specified for the task handling rule at server-level.

    Image Added
  7. Click Load Task Properties to see the instance properties of the task implementation.
    Image Modified

...

  1. Use the instance properties fields as follows:
    • Property Name - The unique name of the task property.
    • Property Type- The type of property, either Literal or XML.
    • Property Value - The value of the property.
    • Action - Allows you to delete a property.

    For more information on setting the properties for the default task implementation, see Examples and Injecting the message to a named sequence or proxy service below.
    Image Modified
    The org.apache.synapse.startup.tasks.MessageInjector implementation takes the following properties: 
    • format - defines the format of the message similar to Address Endpoint formats: soap11, soap12, pox, get
    • message  - you can provide an XML or literal value depending on message format.

      Note

...

    • When you add a scheduled task, it is mandatory to provide a value for the message property. Therefore, even If you do not want to send a message body, you have to provide an empty payload as the value to avoid an exception being thrown.

    • soapAction - specify the SOAP Action to use when sending the message to the endpoint. 
    • to - specify the endpoint address. 
    • injectTo - specify whether to inject a message to a proxy service or sequence. This field takes values 'sequence' or 'proxy' and 'main' to inject

...

    • to main sequence
    • proxyName -

...

    • if injectTo contains 'proxy' then the name of the proxy to inject the message to is specified here. 
    • sequenceName -

...

    • if injectTo contains 'sequence' then the name of the sequence to inject the message to is specified here. 

...

  1. Click Schedule to apply the settings.
    Image Modified

Anchor
XML configuration
XML configuration

...

Follow the instructions below to add and schedule tasks using XML configuration.1.

  1. Sign in. Enter your user name and password to log on to the ESB Management Console.

...

  1. Click on "Main" in the left menu to access the "Manage" menu.
    Image Modified

...

  1. In the "Manage" menu, click on "Source View" under "Service Bus."
    Image Modified

...

  1. In the source view, add the task configuration based on your requirement.
    Image Modified
    The syntax of the task configuration is as follows:

    Code Block
    <task class="string" name="string" [group="string"] [pinnedServers="(serverName)+"]>
           <property name="string" value="String"/>
           <property name="string"><somexml>config</somexml></property>
           <trigger ([[count="int"]? interval="int"] | [cron="string"] | [once=(true | false)])/>
    </task>

...

Anchor
examples
examples

Examples 

...