I am developing a solution that requires a number of tasks to be completed at various times. Example:
I have already implemented the solution, however, it was basically just a quick fix to get the thing running. Now that it is up, I want to revisit the current setup and improve it so it is as efficient as possible.
For the current solution I have created a sepearate application for each different task and used the Task Scheduler to execute them at specific times.
My question is, does this seem like a reasonable approach for a solution to this type of application? Do some of the tasks seem better as a service rather than an application?
A service sounds like the right way to approach this.
Long running subtasks such as PDF generation are well suited to perform using the asynchronous programming method, i.e. using worker threads that call back to the parent thread upon completion. This way the monitor tasks can run independently of the action tasks.