|Think about Loose Coupling|
I had to develop a comparably complicated perl based scheduler running on Windows used for running QA GUI scripts. Some points :
1. Use perl2exe in order to generate the executables - not need to deploy Perl to all workstations (if you have them more ; )
2. Do not put all the eggs into one basket - one executable starting the daily cycle and rebooting according to the times in the settings file
3. Produce different executables for the Daily Cycle, Hourly cycle .. etc.
4. Timing related code into a Timer.pm - array of hashes to store the dynamicly generated times according to the cycle length
5. Process handling and killing - in separate modules
6. Do not use fork , use CAREFULLY perl threads combined with
7. Use a simple xml file in order to keep track of the whole system
8. Many other small tricks - send me e-mail First.Last@gmail.com if need more information
9. The whole think has worked already 4 months 24/7 without any serious failures ...