Feature request: Expose the task modifiers and modifier args on a `Task` object
See original GitHub issueI have an AsyncButton
component which can be used to trigger single or parallel task performs on click.
Currently my API for controlling this requires knowledge of the task implementation to decide whether the button should be allowed to trigger additional tasks on click or disable the button when a single task is running:
<AsyncButton
@allowConcurrency={{true}}
@task={{this.someTask}}
/>
Ideally, I would like to remove the need for this allowConcurrency
flag and instead derive this from the type of task or the modifiers, for example, if the button could check if it is a restartableTask
, then the button would automatically disable concurrency, or if it were a standardTask with maxConcurrency = 2
and one task is only running, then allowConcurrency
is true, but when the user clicks again, the AsyncButton
component would detect hitting the allowConcurrency
limit and then automatically disable additional concurrency until a task completes.
Ideally I suppose that the Task
API would generically expose the type of modifier used and also any arguments passed to the modifier (include the default Task
“modifier”).
Issue Analytics
- State:
- Created 2 years ago
- Comments:7 (1 by maintainers)
Top GitHub Comments
This dovetails nicely with the next RFC I’m working on, which is a public API for
TaskFactory
and opening up task modifiers for extension. All of this stuff already lives as private properties on tasks already, so I will play around with some notion of task metadata within that. Stay tuned!@lougreenwood unfortunately didn’t quite get to exposing this info for the Task Modifiers RFC released in 2.2.0, as there were some dependencies on Scheduler stuff that needs some work to be made more visible, but that’s the next piece of work I’m going to work on for a 2.3.0.