Saltar al contenido principal
Version: próxima

Scheduler

This document gives a minimum base to start with the AWE Scheduler module, and explains how to automate and schedule tasks inside AWE in a simple way.

The Scheduler module is based on the Quartz Scheduler library.

All documentation related to the Quartz Scheduler library can be found on its web page.

Prerequisites#

The scheduler module needs to be configure before it is used.

To see how to configure the scheduler module for your application see the Configuration guide.

Tasks#

A task consists on a job associated to a trigger that is executed by the Scheduler in the configured time / moment.

A task can also be concatenated with other tasks to create a workflow. This can be done by adding those other tasks as dependencies in the parent task configuration wizard.

A task consists on a job associated to a trigger that is executed by the Scheduler in the configured time / moment.

A task can also be concatenated with other tasks in order to create a workflow. This can be done by adding those other tasks as dependencies in the parent task configuration wizard.

Types#

There are two type of tasks that the scheduler can work with, the maintain tasks and the command tasks.

Maintain TaskCommand Task
A maintain task executes a public maintain with a defined schedule.A command task executes a batch on the selected server with the defined schedule.

Configuración#

When creating a new task, a task creation wizard is used to personalize the task configuration.

The configuration wizard consists in 5 steps:

1. Basic information.#

In this step we have to add the task basic configuration.

ElementDefinitionUse
NameTask nameRequired
ActiveTask status, if not active the task would not be launchedRequired
DescriptionTask descriptionOptional
Max. stored executionsMaximum number of executions to be stored in the database (Used to calculate the average time). The default value is 10.Optional
TimeoutMaximum time for the task to finish. If the task execution time exceeds the timeout time (represented in milliseconds) the task will be interruptedOptional
ExecuteThe task execution type (Command or Maintain)Required
Execute atServer in which the command task has to be launchedOptional (Only needed in Command launch type)
CommandCommand to launchRequired (Only needed in Command launch type)
MaintainMaintain to launchRequired (Only needed in Maintain launch type)
Launch dependencies in case of warningLaunch the task dependencies in case of warningOptional
Launch dependencies in case of errorLaunch the task dependencies in case of errorOptional
Set execution as warning in case of errorSets the parent execution as warning in case of dependency errorOptional

Note: To add a new maintain to the Scheduler, the maintain must be set to public="true".

2. Task parameters#

This step allows to add the needed parameters to the maintain or command for its execution.

These parameters are loaded to the application context when the task is going to be executed. In this way, the task can get the parameters in the execution time.

ElementDefinitionUse
NameParameter nameRequired
SourceParameter source, the place from which the parameter will take its valueRequired
TypeThe parameter type (Only used to give extra information to the user)Required
ValueThe parameter value, it can be directly the parameter value if the source is Value, or the parameter name to take the value from if the source is VariableOptional

Note: If the task launch type is Maintain, the needed parameters for the selected maintain will be automatically added to the task parameters screen.

3. Task launch#

In this step we will configure the launch type for the task.

We can choose from three different options:

1. Manual#

The task will only be launched manually from the task list screen.

Note: For a task to be added as a dependency, the launch type must be set to Manual.

2. Scheduled#

The task will be launched with a cron pattern based schedule.

See schedule configuration guide for more information about how to create schedules for a task.

3. File#

With this launch type, the task will launch a check in the selected file/s with the configured schedule.

To know how to create a schedule for the task see schedule configuration guide.

The remaining fields are:

ElementDefinitionUse
Search atThe server in which the scheduler has to check for the filesRequired
File pathThe path in which the file/s are locatedRequired
File patternThe pattern that the files have to match withRequired
UserThe user for the FTP connectionOptional
PasswordThe password for the FTP connectionOptional

4. Task dependencies#

In this step we will configure which tasks have to be executed after the current task finishes.

Playing with these options, we can create a workflow.

ElementDefinitionUse
TaskThe task to be executedRequired
BlockingDefines if the task is blocking or not. If it is, the task will be executed synchronously, and it will cancel the dependency launch stack if the task ends with an error. Otherwise, the dependency will be launched asynchronouslyRequired
OrderThe order in which the synchronous task has to be launched in the synchronous dependency stack, the asynchronous dependencies will be launched as they come, with no defined orderRequired

Note: The dependencies can also have their own dependencies to create a workflow.

3. Task report#

The last step is to choose a report type.

The report will give information about the task when it finishes.

We can choose one of these four options:

3.1 None#

Used when we don't want to retrieve any report from the task.

This could be compared to the silent-action in AWE.

3.2 Email#

This option will send an email with the task information, and it will also add the dependencies information if any.

ElementDefinitionUse
Send in case ofSet the allowed status (task status when it finishes) for sending the emailRequired
Email serverThe email server form where the email is going to be sentRequired
Send to usersThe list of users to send the emailRequired
TitleThe title of the emailRequired
MessageThe message to be added in the emailRequired

Note: The email will also add basic information about the task itself and its dependencies.

3.3 Broadcast#

This option will send a broadcast message with the given message to the selected users only.

ElementDefinitionUse
Send in case ofSet the allowed status (task status when it finishes) for sending the broadcastRequired
Send to usersThe list of users to send the broadcastRequired
MessageThe message to be sent in the broadcastRequired

4. Maintain#

This option will launch the selected maintain as a report.

ElementDefinitionUse
Send in case ofSet the allowed status (task status when it finishes) for executing the maintainRequired
MessageThe message to be sent, it will be added to the context in order to be available for the selected maintainOptional

Note: The task data will be added to the context in order to be available for the selected maintain, to get the data, it is recommended to use the TaskConstants interface variable names from the Scheduler package.

Task management#

The existing tasks can be managed from the scheduler tasks screen, where we will have a list of the created tasks.

The list will show some basic information of each task, like the name, the launch type (icon), the last and next execution times, the task status and the execution average time.

When selecting one task, some options will be activated:

OptionDefinitionMultiple
UpdateUpdate the selected taskNo
DeleteDelete the selected task/sYes
StartLaunch the selected task as a manual task. It doesn't need to be a manual task in order to launch an instance of the task manuallyNo
Activate/DeactivateAct

Servers#

The servers created for the Scheduler module are mainly used to execute tasks, and in tasks that need to check if a file has changed.

The servers can be instantiated multiple times, and each instantiation can use its own user and password to connect to the server with the selected protocol.

The scheduler servers are used with two purposes, to launch a batch on a remote server, and to check for file modifications in an FTP server.

Regarding to the FTP servers, the same server can be used as many times as needed, in different tasks, with different credentials.

Configuración#

When creating a new server, the next fields have to be filled:

ElementDefinitionUse
NameServer nameRequired
ServerServer IP addressRequired
PortServer portRequired
Type of connectionThe protocol to be used to connect to the serverRequired
ActiveServer statusRequired

Note: If a server is deactivated, the task using it won't even try to connect to it.

Management#

The scheduler server list will show a list of servers with their basic information: name, server ip, connection protocol and status.

When selecting one of the servers from the list, some options will be enabled:

OptionDefinitionMultiple
UpdateUpdate the selected serverNo
DeleteDeletes the selected server/sYes
Activate / DeactivateActivates / deactivates the selected server, the label changes depending on the selected servers current statusNo

Calendars#

The task inside the scheduler can be modified to ignore some dates by using holiday calendars.

Those calendars contain the dates that have to be ignored by the scheduler in the task schedule.

Each of the tasks can only be associated with one calendar.

The calendars inside Scheduler module are used to set the dates where the tasks won't have to be executed, like for example, holidays, or weekends.

Each task can only have associated one calendar, but there can be created as many calendars as needed, and then just change the calendar associated to the task.

Configuración#

The calendar configuration procedure consists in two steps:

Create calendar#

The first step is to create the calendar itself, which will have the next basic information.

ElementDefinitionUse
NameThe calendar nameRequired
DescriptionThe calendar descriptionRequired
ActiveThe calendar statusRequired

Note: If the calendar status is set to Active = No the task will ignore the calendar, and it will be launch as if it wasn't associated with it.

Add dates#

Once the calendar is created, from the calendar configuration screen, we can add new dates by selecting the option edit on the top right side of the screen.

When we get to the edition screen we will have to fill the next fields for each date.

ElementDefinitionUse
DateThe date to add to the calendarRequired
NameA name to assign to the date, for example, a holiday nameOptional

Management#

On the calendar list screen, when selecting one of them, the next options will be available:

OptionDefinitionMultiple
EditRedirects to the edition screen where we can change the calendar data, and add/remove/update calendar datesNo
DeleteDelete calendar and all its associated datesYes
Activate/DeactivateActivates / deactivates the selected calendar, the label changes depending on the selected calendars current statusNo