Look at the clock, its time for Scheduler!

Some task (short or long-running) need to be repeated periodically. Scheduler is an integrated solution that is specifically designed to solve this problem.

Any entity can be considered a task, as long as it implements an Execute operation. This method can optionally return a generated entity (e.g., triggered Process).

For tasks that are not parameterizable SimpleTask can be used. It’s just a Symbol associated with a piece of code your write.

Any task can be executed manually if necessary (Synchronously or Asynchronously), or can be programmed to run periodically.

Scheduling Tasks

Out of the box, the scheduler is able to trigger actions with different periodicity:

  • Each X minutes
  • Each X hours
  • Every day at a particular hour
  • Weekly at a particular hour
  • Some days of the week at a particular hour, taking a holiday calendar into account
  • ...but any other particular rule can be implemented

Scheduler Panel

By having a centralized entity for scheduling, it's easier to control all the programmable tasks that occur in the application.

The Scheduler Panel will let you have a complete overview of the scheduler module:

  • Initial configuration parameters of the scheduler
  • In-memory queue of the scheduler, with date and time of next execution
  • Programmed scheduled tasks
  • Last executed scheduled tasks

Scheduler Task Log

Finally, when a task is executed (manually or periodically), it stores a log in the database containing the following fields. 

  • ITask that was executed
  • Scheduled task (if not manual)
  • User that triggered the action (if manual)
  • Generated entity (if any)
  • Start and End date
  • Exception
  • etc...

This information is valuable to track if all the task have been executed, possible exceptions, etc..

Turn back to Signum Extensions