...
Code Block |
---|
{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "TimerDescriptor", "description": "Timer", "type": "object", "properties": { "id": { "description": "Timer identifier", "type": "string", "format": "uuid" }, "modified": { "description": "Whether modified", "type": "boolean" }, "routingEntry": { "$ref": "routingEntry.json", "description": "Proxy routing entry" }, "enabled": { "description": "Whether enabled", "type": "boolean" }, "moduleName": { "description": "Module name timer belongs to", "type": "string" }, "failedlastFailedDate": { "description": "DidThe date of the last execution failfailure.", "type": "boolean" }, "failureCount": { "description": "Failure count", "type": "integer" } }, "required": [ "routingEntry", "enabled" ] } |
Drawio | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Each time the timer fails, we will increment the failure count by 1, and if it runs successfully, we will reset the count to 0. This value will determine when to schedule the circuit breaker job to resume the timer. To schedule the circuit breaker job, we will use a SimpleTrigger
that fires at a specific time without repeating.
For each circer bbrecer job we add We add a job data item which include for each circuit breaker job that includes the timer job key to be able to resume itallow it to be resumed. No additional interaction with databse not the database is required. Once the circle job expected circuit breaker job has been triggered at least once, it should be deleted.
An additional REST endpoint needs to be added to the scheduler module to allow manual resumption of timers. This will enable the operations team to monitor timers via the dashboard, identify and resolve issues that caused failures, and resume the timers immediately, without waiting for the circuit breaker job to resume them in the next cycle.
...