Welcome to the Mendix Queue module. This module can be used in Mendix apps to run jobs in single or multi threaded job queues.
Major differences with the Process Queue:
- 7,4 times faster (see https://testqueueperforman.mxapps.io/)
- Retry mechanism can be defined by the user (exponential backoff algorithm)
- Support of queue control when using clustered runtime (set CLUSTER_SUPPORT constant)
- Minimum database interactions are implemented to increase performance (no persistent Queue and Process entities, no execution log by default)
- Jobs can be scheduled using a pre-configured delay in a user-defined time unit
- The microflow to run can be configured in the Job (no process definition necessary)
- Queued jobs can be removed from the queue (cancelled)
- Running jobs can be aborted -> status set to cancelled
- In case of an error while running the Job, the error handling behavior specified in the microflow is applied (Process Queue performs a rollback by default). An error without rollback will result in the changes being committed, but the Job receiving the status Error
- Java code is unit tested, resulting in cleaner code (check for number of invokations of methods) and assuring less bugs in future releases
Check the demo application at https://queue100.mxapps.io and login using demo_user and hXPC3NKz49.
Known issue: when CLUSTER_SUPPORT is enabled, do not add Jobs to the Queue during the After startup microflow. It cannot find the xasInstance object. Support ticket has been filed.
Modules5 stars, based on 8 votes
5/5starsVery easy to implement.
Great for queuing events for an application.