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

Last edited Feb 12, 2013 at 8:12 AM by samofab, version 4