title: Build a job scheduler in C#
body: <p>I would like to build a job scheduler.
  So this job scheduler allows the user to configure:</p>
  
  <ol>
  <li>Job start time. (datetime value)</li>
  <li>Job frequency: minutes, hours, days, months, years (any integer value) </li>
  </ol>
  
  <p>I have 2 options on how to build this scheduler:</p>
  
  <ol>
  <li><p>Use the C# Timer class. But this also means that I have to create a new Timer object for every scheduled job. I am planning to expose an API endpoint for the user to call and POST the starttime and frequency info. So when the endpoint is called, I will need to create a new Timer object. 
  Will this even scale? How do I manage the Timer objects? I need to allow user to create, update and delete their jobs.</p></li>
  <li><p>Use the Azure Scheduler. However, I have a very large user database. I had a look at the pricing, the maximum total jobs that can run on 1 instance is 5 million jobs only. Plus, it is difficult for me to manage the running instances if I have more than 1 instance running. How do I decide to load balance multiple instances of schedulers?</p></li>
  </ol>