conductor icon indicating copy to clipboard operation
conductor copied to clipboard

Pausing all tasks for a specific task type?

Open blueelephants opened this issue 7 years ago • 7 comments

I have seen, that I can pause a complete workflow within the UI.

Is there also a way to pause all tasks of a specific task type?

My use case is: A task type represents a microservice, and when I upgrade the microservice (from e.g. version 1.0 to 2.0) I want to pause all associated tasks during the upgrade.

I know I could figure out all associated workflows using the Conductor Server REST API and could then pause each single workflow using the task type, but maybe there is some more "elegant" solution to the problem?

Many thanks for your help.

blueelephants avatar Mar 24 '17 17:03 blueelephants

@blueelephants we do plan to add ability to pause ALL the workflows of a specific type + version. That should help with your case and not have to find and pause the running workflows.

v1r3n avatar Mar 24 '17 19:03 v1r3n

That would be a great feature - thanks. Is this feature already planned for 1.8.x? Or for a later release?

blueelephants avatar Mar 25 '17 06:03 blueelephants

@blueelephants We will add this feature request to our backlog but in the meantime, if you wish to implement this and submit a PR for the same, we would be happy to review and merge.

apanicker-nflx avatar Jan 21 '19 23:01 apanicker-nflx

@apanicker-nflx @v1r3n Hello, I'm a student at UT Austin, and I'd like to work on this issue as part of an assignment for my distributed systems class. Could you provide any guidance as to which files/sections of the codebase I will likely need to edit or where I should start looking? Thanks!

jackstenglein avatar Apr 06 '21 21:04 jackstenglein

Hey @jackstenglein, that's awesome. You can start with a discussion in Github issues with a proposed solution(s).

To get started with Conductor codebase, I'd recommend running in debug mode and tracing the execution path of some of the Conductor operations, eg: starting a workflow, and then polling and updating a task. Workflow Executor is the core of most operations, which in turn relies on DeciderService. Here's another example of Workflow resource's pause endpoint, which leads to WorkflowExecutor.

Feel free to open a discussion if you need any further help!

kishorebanala avatar Apr 13 '21 00:04 kishorebanala

Hi @kishorebanala, sorry for the late reply.

we do plan to add ability to pause ALL the workflows of a specific type + version

It seems like this functionality already exists, and I am confused about what work this issue requires. See the screenshot below: you can filter workflows by their type and version and then use the bulk processing functionality to pause all of them. That seems to be the functionality that this issue is looking for. Is this just an old issue that never got closed or am I misunderstanding something?

Screen Shot 2021-05-12 at 4 05 16 PM

jackstenglein avatar May 12 '21 21:05 jackstenglein

I think the wording in that comment is a bit misleading as the original poster is looking for a way to pause all tasks of a specific type. In the case described by OP, they are looking to temporarily pause processing of a specific task type. During this time, all RUNNING workflows which contain this task would inherently be halted until such time that the paused task type has been resumed. Hope that helps.

apanicker-nflx avatar May 17 '21 23:05 apanicker-nflx