Hello Sofia.
The master class example is almost the way I usually do timers. Regarding your questions:
1) Because you can't be sure of when the timer will start, the limit should be set in minutes from now, not a specific date. "Stop 10 minutes from now" or something like that. AddMinutes(CurrDateTime(),10)
2) your timer always does the Excel step. That one isn't needed (it is only extra load and restarts the count).
Why don't you:
Create a timer to read Excel into a table.
Create a timer to process each row from the table (with all the cares).
Timer1 calls Timer2 and on the second you follow all the best practices.
Best practices are simple:
Control your timer (make it stop when you want)
Control your data (be sure of what was processed or not)
Here goes a pseudo-code example.
