adamralph / bau-nuget

A Bau plugin for running NuGet commands
MIT License
2 stars 1 forks source link

parallel operations #33

Open aarondandy opened 9 years ago

aarondandy commented 9 years ago

If the new API works out making the operations parallel is super easy. Would there be any reason to perform these operations in parallel using .InParallel() for example? It could increase performance for things like push when there are symbol files but it could add a lot of safety issues. For example what if the first push fails, should the second also be attempted? If two pushes happen at the same time will the server ignore one of the requests? Without any kind of retry mechanism it probably is not safe enough to provide such a feature. Also if retries are common the performance gains would be lost.

adamralph commented 9 years ago

Good idea! I say we just implement it and let people turn it off with a method if they want to. I think Push and Pack should both be fine in close to 100% of cases. Restore should also be fine most cases apart from when someone restores for two solutions in the same repo which have some overlap in their packages. For all the task types, if one ore more processes fail, we can just report the errors afterwards by unwrapping the AggregateException.