A simple service to load an assembly and periodically execute one of its methods.
A few years ago we were struggling with the problem of running period tasks in .NET. The built-in scheduler is awkward and unreliable; tools and examples found on Codeproject were always half finished projects mostly in library form. What we wanted
was a true OS level single tool for periodic running of .NET tasks. We created a windows service that can dynamically load assemblies based on the configuration in SQL database.
Features, requirements and limitations
- The assembly with periodic task must implement simple interface IJob
- All of the assemblies must be of the same .NET version (current code is compiled to 4.0)
- SQL database is required (2005, 2008, 2012)
- Task must finish before another task of the same type is started
The code was originally developed for my employer Renderspace d.o.o. and I certify that I have approval of my supervisor for the change of license.
Acknowledgement
We're using slightly modified code from Debugging Windows Service Without Deploying It By Eric De Carufel and Implementing
a small Cron service in C# By Stefan Rieken