cvb
08/16/2021, 10:20 AM(pipeline, input-class-N)
, I don't mind if runs for (pipeline, input-class-I)
and (pipeline, input-class-J)
runs in parallel, but there should be only 1 (pipeline, input-class-I)
at any time
And I can't really figure out how to do that, I can do that with QueuedRunCoordinator
specifying tagConcurrencyLimits
for each input class, but it looks ugly.
Wouldn't it be much better, if I could define something like
type: QueuedRunCoordinator
config:
queuedRunCoordinator:
tagConcurrencyLimits:
- key: non-concurrent
limit: 1
and then for each run define tags like tags={"non-concurrent": "pipeline-input-class-I"}
? And it looks like it wouldn't be that hard to do in _TagConcurrencyLimitsCounter that will change the api unfortunately, so maybe it would be better to be able to use custom RunCoordinatorDaemon?
What do you think, is there any plans for that? Does any of that sounds good enough so I could make pull request?alex
08/16/2021, 5:08 PMjohann
08/16/2021, 6:54 PMtagConcurrencyLimits:
- key: non-concurrent
value: pipeline-input-class-I
limit: 1
- key: non-concurrent
value: pipeline-input-class-II
limit: 1
but you don’t want to have to enumerate all the possible values (or they’re unbounded)?cvb
08/16/2021, 7:04 PMjohann
08/16/2021, 7:08 PMtype: QueuedRunCoordinator
config:
queuedRunCoordinator:
tagConcurrencyLimits:
- key: non-concurrent
matchByValue: true
limit: 1
cvb
08/16/2021, 7:11 PM