Uploaded image for project: 'JS - JobScheduler'
  1. JS - JobScheduler
  2. JS-402

Locks for complete job chains

    XMLWordPrintable

Details

    • Feature
    • Status: Deferred (View Workflow)
    • Minor
    • Resolution: Unresolved
    • None
    • None
    • Job Scheduler Binaries
    • None

    Description

      Current Situation

      • Locks are available on a per job basis.
      • Locks are not applicable to job chains with the intention to restrict parallel execution to a specific number of orders. If each job in a job chain is assigned a lock then it is not foreseeable if these locks can be acquired in sequence for a specific order.

      Desired Behavior

      • Enable locks at job chain level:
        • Before starting an order the job chain checks if the required lock(s) is available.
        • The job chain keeps the lock until the order leaves the job chain.
        • Even if an order is suspended or setback then the job chain still keeps the lock.
      • Configuration sample:
        <job_chain>
        ...
           <lock.use lock="my_lock" exclusive="no"/>
        </job_chain>
        

      Use Cases

      1. Prevent 2 job chains from running at the same time
      2. Prevent 2 orders from running in the same job chain at the same time (=no pipelining)
      3. Prevent a job chain and a (standalone) job from running at the same time

      Maintainer Notes

      1. This use case creates some complex dependencies and requires a redesign of the job chain and order objects.
      2. This use case is covered by use of the attribute <job_chain max_orders="1"> that would restrict the number of parallel orders, i.e. additional orders
        • would wait until the job chain is ready to accept an additional order.
        • would be processed by the job chain in the sequence of their arrival.
      3. This use case will probably be dismissed as in future releases all jobs will be executed within job chains. Standalone jobs will be mapped to job chains with a single job node.

      A scripting solution for use cases 1 and 2 is available with the How to prevent concurrent access to resources by parallel execution of orders in job chains article.

      Feel free to vote for this feature and make us know your feedback.

      Attachments

        Issue Links

          Activity

            People

              sos_engine_team TeamEngine
              al Andreas Liebert (Inactive)
              Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - 2 weeks, 3 days, 1 hour, 30 minutes
                  2w 3d 1h 30m
                  Remaining:
                  Remaining Estimate - 2 weeks, 3 days, 1 hour, 30 minutes
                  2w 3d 1h 30m
                  Logged:
                  Time Spent - Not Specified
                  Not Specified