title: Best Practices of fault toleration and reliability for scheduled tasks or services
body: <p>I have been working on many applications which run as windows service or scheduled tasks.</p>
  
  <p>Now, i want to make sure that these applications will be fault tolerant and reliable. For example; i have a service that runs every hour. if the service crashes while its operating or running, i d like the application to run again for the same period (there are several things involved with this including transactions of data processing) , to avoid data loss. moreover, i d like the program to report the error with details. My goal is to avoid data loss and not falling behind for running the program. </p>
  
  <p>I have built a class library that a user can import into a project. Library is supposed to keep information of running instance of the program, ie. program reads and writes information of running interval, running status etc. This data is stored in a database.</p>
  
  <p>I was curious, if there are some best practices to make the scheduled tasks/ windows services fault tolerant and reliable.</p>
  
  <p>Edit : I am talking about independent tasks or services which on different servers. and my goal is to make sure that the service will keep running, report any failures and recover from them.</p>