Understanding Joget Deadline
Let's assume there are 100 pending instances where their deadline has matured.
If the "System Settings > Process Deadline Checker Interval" is set to 1 hour, Joget will check and run each of the 100 pending instances in batches of 10.
Once all 100 instances have been processed, it will then wait based on the Process Deadline Checker Interval, which in this case is 1 hour. And the cycle repeats itself.
If the Joget server has many pending processes, the cycle time will be longer and may push the next cycle to start at a later time.
Setting a short 1-second internal time may increase the CPU load and data IO in your Joget server, which may cause a performance hit. We would recommend an internal timer of 30 seconds or longer.
In Joget DX, as an added benefit, you can use Multi Tools Process Tool to run threads concurrently. For any deadline tasks that are not relevant to data integrity, you can wrap those tools used in deadline within Multi-Tools & select the "Run Mode" property to "Run tools concurrently in multiple threads". This can improve the Joget performance.
If you see the following error:
The explanation is as follows:
The deadline checker will grab every running process instances which have an un-executed deadline and add it to the checking waitlist. When the deadline checker checks the process instance one by one, the deployment will abort the process instance and print an exception message. The deadline for the closed process instance will not be checked by the deadline checker in the next (future) execution. The un-executed deadline records in the SHKDEADLINES table will not check nor execute once the process instance is closed. So this error is not an issue and is harmless.
Deadlines and Escalations under Caution
There is an app attached that is able to help you check how many deadlines are waiting.
More information regarding the app:
The "List of Deadlines activated" menu will display the lists of pending instances and whether it has been executed or stopped.
The "Check" menu will display whether the deadline checker thread is running or stopped.
Sample App is developed for MySQL/MariaDB
The App is developed for MySQL/MariaDB. Should you use MSSQL, you will have to make necessary changes to the query in the "List of Deadlines activated"
If Deadline Checker Thread Stops
If for some reason or other the deadline checker thread stops , you can:
- Stop the Joget Apache Tomcat, wait a few seconds, and restart the Joget Apache Tomcat, OR
- restart it by just resubmitting the "General Settings" page.