# Scheduling Functionality

The Scheduling functionality allows for a particular workflow to be run at a set time with the option to have it recurring on various dates or weeks.

How it works:

  • When a duplicated workflow which is scheduled is being started, the origin workflow from which it has been duplicated is locked so that no one can delete it while there is a running duplicate.

    • We have two types of duplication performed by different entities - user and system. When the user creates a duplicate the new workflow does not relate in any way with the origin whilst the system duplicated workflow is tightly related to the origin. The behavior below is relevant for system initiated duplication.

    If duplicated workflow is running the origin is locked for DELETE while the duplicate is not in one of the following states:

    • READY

    • DONE

    • START_FAILED

    • STOP_FAILED

    Also while a duplicate is in any of the following states:

    • READY

    • DONE

    • START_FAILED

    • STOP_FAILED

    • RUNNING

the origin is unlocked for UPDATE of Schedule

Important:

  • The parent workflow can only be deleted when all of its duplicated have been deleted.