Versions Compared

Key

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

Scheduling

...

We distinguish two types of schedulers namely Basic and Advanced. Choosing the right scheduler that suits your needs depends on the business demands and the number of cases and tasks being processed. The paragraphs below describe the workings of both schedulers and the considerations when choosing the appropriate one.  

Basic scheduling (default)

By default Blueriq uses the basic Blueriq uses a  scheduler for evaluating tasks and priorities. The evaluating evaluation is executed according to the configuration of the blueriq.timer.interval. This can be set to hourly (default) or , each minute or never. Each time the interval expires, the process engine starts evaluating all projects present on the Runtime that uses are using the Process Engine. Per project all the cases are retrieved that contain timer tasks, automatic tasks, tasks with a expiration date or Priority Algorithms. When there is a matchthe evaluation leads to a match (meaning when the current time matches the proposed execution time), the task are is executed. 

As a result, in a single-node or multi-node (clustered) environment when the interval expires, one of the nodes will start evaluating all projects which in turn will cause a peak load due to the increase CPU and memory consumption of that specific node.  

Advanced scheduling

Note

When upgrading from the basic to the advanced scheduler, please refer to the Scheduler migration guide

When using the process engine in a clustered environment or when there are a lot of tasks being processed, the advanced scheduler is probably more suitable because this scheduler is able to schedule tasks in a precise manner. In the basic scheduler the evaluation takes place on a project level, case per case. The advanced scheduler evaluates and executes each task individually at a specific moment in time (unlike an interval). 

Considerations

The transactional boundary of the evaluation and execution done by the basic scheduler is a project. As a result, per project all cases are evaluated and all the tasks are executed the moment the timer interval expires. This will increase CPU and memory consumption. Also if something went wrong with executing one of the tasks within a project, the transaction will be rolled back (eq. case A has 5 timers tasks, if one of the timer tasks fails, all the other timer tasks will not be executed). Due to the fact that the advanced scheduler evaluates and executes each task individually, it has no impact on the other tasks when this task fails. Also, in a multi-node environment each task will be picked up one-by-one by one of the nodes, no peak load will occur.

 

 Image Added