Automic Workload Automation

How to Run a Job Every x Minutes Without Overlapping

  • 1.  How to Run a Job Every x Minutes Without Overlapping

    Posted Dec 09, 2016 05:57 PM

    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.