Harriet_Kim_1764

How to Run a Job Every x Minutes Without Overlapping

Discussion created by Harriet_Kim_1764 on Dec 9, 2016

Scenario:


A user wants to be able to define jobs or workflows to run every x minutes without overlapping.
They have come across an issue where intermittent failures occur due to multiple instances running within x minutes of each other.
They have tried using the "recurring" execution to create a Period object, but also experienced intermittent aborts.

Suggestion:


Control the activation from a script or an event.

For example, if you had a time event that ran every hour with the following:

:IF SYS_STATE_ACTIVE(JOBP, "WORKFLOW_GO") = "Y"
: P "WORKFLOW IS ACTIVE"
:ELSE
: SET &RUN_WF# = ACTIVATE_UC_OBJECT("WORKFLOW_GO")
:ENDIF

This would only activate the WORKFLOW_GO if it currently was not in an active state in the system.

This could be set to run every x minutes (or a tighter scheme) if you wanted to have the WF activate closer after the previous activation.

This scenario would stop a second from even being queued and would stop the need to cancel any activations.

Outcomes