Back End Job Engine is the way ClickHome organise and queues work to be done while the user is not watching. Sometimes, things don't work, so it is important that someone is checking on the queue and managing any errors, and raising it to the support team when help is needed. The process for backend jobs is as follows (all references to contract are the same as our explanation of Jobs) :
- Every 5 minutes, the ClickHome Windows Service checks to see how many Back End Jobs (BEJ) are in memory already. If there are less than 5000, it will load up to 5000 more, where the Run After time has passed, the status is READY (or empty), and ordered by the lowest Id first. When they are loaded from the database, the result field is set to BUSY.
- Each BEJ is either a global operation, a single contract operation or a multi-contract operation. Single contract operations are deduplicated so that only one instance of the BEJ is executed, and of the duplicates for the same operation and contract, only the most recently added is executed.
- If the operation to complete the BEJ suffers an error, the result is set to ERROR, the last error message field is populated, and the failure count is updated. If the operation is a single contract operation, any failures are recored into the contract operations flag table, which exponentially delays that specific operation on that contract - to prevent the same error happening thousands of times per hour and clogging up the system and error logs.
- If the operation succeeds, then the BEJ is deleted (and for single contract operations, all duplicates too), and the contract operations flags are updated so that any future processing resumes normally.
The Back End Job can be used to perform various operations and updates to ClickHome.
See Operation Codes