You can write a regular old console application with an infinite loop that stops at the end of each iteration with Thread.Sleep (). Each time the cycle wakes up, it checks the schedule that it stores inside itself and calls all the functions that should be performed at this time. The schedule can be saved in app.config so you can change it without recompiling WebJob, just download the new app.config and restart it.
Or, if you prefer, you can omit the infinite loop and schedule the WebJob at a fixed interval, say every 30 minutes, and check its internal schedule every time it starts.
source share