Uploaded image for project: 'camunda BPM'
  1. camunda BPM
  2. CAM-2782

Ability to assign priorities to async continuations complemented by plugabble job aquisition strategies

    • Icon: Feature Request Feature Request
    • Resolution: Won't Fix
    • Icon: L3 - Default L3 - Default
    • None
    • None
    • engine
    • None

      In a shared engine deployment, process tasks may have differing timeliness NFR's. Hence I'd like the ability to assign priorities to tasks such that the job executor job acquisition strategy leverages these priorities.

      Additional Considerations:
      Perhaps timers should have highest priority such that they are always executed first.
      A pluggable job aquisition strategy is desirable such that I can select an appropriate strategy.
      Sample strategies include - select based on priority order, select on priority*(Systime() - DueDate)

        This is the controller panel for Smart Panels app

            [CAM-2782] Ability to assign priorities to async continuations complemented by plugabble job aquisition strategies

            Hi Rob,

            interesting feature request, we have been digging into this topic some time ago, in context of job prioritization by process definition. See linked issue.

            Not an easy one, but there is definately value in it.

            Can you maybe comment on your use case for this. Did you observe the job executor being inaccurate?

            Cheers
            Robert

            Robert Gimbel added a comment - Hi Rob, interesting feature request, we have been digging into this topic some time ago, in context of job prioritization by process definition. See linked issue. Not an easy one, but there is definately value in it. Can you maybe comment on your use case for this. Did you observe the job executor being inaccurate? Cheers Robert

            Rob Parker added a comment -

            Hi Robert,
            At a minimum, could the semantics of the job executor be such that the order in which jobs are acquired is the order they fall due. I would gladly swallow the (minor) overhead of an order by construct for predictable job execution.

            In my use cases of a shared engine, I have some processes which ideally should be quite timely, whereas others can execute in their own time. Hence its a frustrating operations experience where when waiting on a time sensitive process to see a recently created less time sensitive process ahead of the pack in execution.

            I have noticed in test environment under load that processes can tend to execute in a breadth first rather than depth first manner. Hence rather than finishing a current process instance, ie depth first, the executors may pick up the start of a newer process and start 'expanding' its execution tree. Of course this may be a behaviour unique to certain process patterns... Hence throughput in terms of completed processes is more meaningful that work started in my domain. Thus I would expect an order by clause to bias execution behaviour towards 'depth' first with greater predicability and consistency...

            Rob Parker added a comment - Hi Robert, At a minimum, could the semantics of the job executor be such that the order in which jobs are acquired is the order they fall due. I would gladly swallow the (minor) overhead of an order by construct for predictable job execution. In my use cases of a shared engine, I have some processes which ideally should be quite timely, whereas others can execute in their own time. Hence its a frustrating operations experience where when waiting on a time sensitive process to see a recently created less time sensitive process ahead of the pack in execution. I have noticed in test environment under load that processes can tend to execute in a breadth first rather than depth first manner. Hence rather than finishing a current process instance, ie depth first, the executors may pick up the start of a newer process and start 'expanding' its execution tree. Of course this may be a behaviour unique to certain process patterns... Hence throughput in terms of completed processes is more meaningful that work started in my domain. Thus I would expect an order by clause to bias execution behaviour towards 'depth' first with greater predicability and consistency...

            We are closing this ticket as part of our backlog grooming. Reasons:

            • It is very unlikely that we will implement this
            • We did not receive sufficient evidence that this ticket is important

            Thorben Lindhauer added a comment - We are closing this ticket as part of our backlog grooming. Reasons: It is very unlikely that we will implement this We did not receive sufficient evidence that this ticket is important

              Unassigned Unassigned
              webcyberrob Rob Parker
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: