-
-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Run tasks in parallel #27
Comments
That's a neat idea and I'm not averse to implementing support for this in some way. Fixing this effectively requires a sandboxing system, where tasks are not sandboxed by default and can opt-in to assert that they can be/are sandboxed/idempotent. This would likely be a breaking change in the task system again and require the release of v6 because the task interface would have to change to accommodate something like a 'sandbox path' that a sandboxed task can guarantee it will solely operate within. It would also need to force every custom task to implement a new interface method to indicate support for this new feature, as only the task itself can assert this. For example, a user could assert sandboxing support in the config file, but if the task itself does not properly support it, that assertion creates a problem. I'm thinking that if the sandboxing system above is implemented,
All tasks on that priority level that aren't sandboxed would then still have to be run in sequence to avoid race conditions and the remaining subset parallelized on independent threads. I'm currently on vacation, so I'll think on this some more once I return. Maybe I'll sketch something out on a separate branch. Thanks for the feature suggestion in the meantime :) |
Started some work on this over in |
It would be nice if long-running tasks could be executed in parallel, like for example two notarization tasks with different settings.
Implementation could look something like: If the priorities are shared between two tasks, they will run at the same time. Maybe, a
defer
option could be added which means the task isn't blocking others from running.The text was updated successfully, but these errors were encountered: