I’m trying to determine if something exists that allows you to run code in a distributed way. Each code task will have an Id and allow for smart scheduling.
- Does not allow code with the same ID to run at the same time. Task will wait in a queue before being executed.
- Task can trigger other tasks to be run.
- If a multiple tasks trigger the same task (determined by id) to run, only one task will be triggered and not two.
It shouldn’t be too difficult to write your own task scheduler and deploy it as a Windows service. This way you can ensure the scheduling rules you have outlined are followed.
Otherwise, you can have a look at Quartz.NET and see if it meets your needs.