title: How perform task with dependencies and scheduling
body: <p>I have a list of task that must be scheduled, like with cron. This is for backups on sql server.</p>
  
  <p>The database will execute FULL, DIFF, LOGS backups in several combinations.</p>
  
  <p>So:</p>
  
  <ul>
  <li>FULL each day at 8:00am</li>
  <li>DIFF each hour</li>
  <li>LOG each 10 minutes</li>
  </ul>
  
  <p>However, I have this problems:</p>
  
  <ul>
  <li>If the server wake up at 8:15am, the FULL task is not executed.</li>
  <li>If the FULL fail, then not make sense to execute DIFF &amp; LOG</li>
  <li>If server wake up 8:15am at saturday, LOG start 8:20 to launch, then for full must wait for next Monday.</li>
  <li>If LOG take too much (is not finished at 9:01am) so DIFF start when LOG is yet not complete. I don't wanna that!</li>
  </ul>
  
  <p>I do this with quartz.net, but that is tangential -I'm open to change lib, remove it, etc.-. So my main objective is reliability in the sequence/execution of task.</p>
  
  <p>In sequential code, this is very easy to do:</p>
  
  <ul>
  <li>DO_FULL THEN</li>
  <li>DO_DIFF THEN</li>
  <li>DO_LOG</li>
  </ul>
  
  <p>However, with a scheduler this get impossible (at least with quartz).</p>
  
  <p>THe problem is the management of time. When the task is marked to start each hour, must be more a hint than a hard rule, because the previous one could be not finished. Also, do the FULL is a requirement to start the cycle.</p>
  
  <p>I wonder that algorithm must be applied here.</p>