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)
- 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.
NOTE: there are some issues running the queue on a multi-node cluster with regards to displaying queue info and queue controls (cancel jobs and shutdown queue). I'm working on a version that fully supports a clustered Mendix runtime. This version is almost ready for release (18-9-2018); finishing unit tests right now.
Modules5 stars, based on 5 votes