Rykian / clockwork

A scheduler process to replace cron.
MIT License
544 stars 66 forks source link

Daylight savings #37

Open JamesPlayer opened 6 years ago

JamesPlayer commented 6 years ago

I just have a general question. Does clockwork cater for changes to the time by way of daylight savings? So for example you have a database driven schedule (checking for updates every minute) and one of the database rows has a timezone of Pacific/Auckland, to run every week on a Sunday at 3am.

When daylight savings rolls around and the clocks are turned backwards from 3am to 2am, is the scheduled event going to happen at the old 3am (which is now 2am) or the new 3am?

chukkwagon commented 5 years ago

@JamesPlayer did you ever find an answer to this question?

JamesPlayer commented 5 years ago

@chukkwagon no I never got an answer but as far as I can tell it doesn't cater to daylight savings changes so I just have a regular cron that runs every minute, checks all records to see if there any that match the current day of the week / time and then spawns a new queued job to run the task if there are any matches.

chukkwagon commented 5 years ago

Thanks for getting back to me. Interestingly, I do not believe that the following snippet is amenable to DST cutover for daily periods that specify an at argument.

https://github.com/Rykian/clockwork/blob/b6baf3ec5948cf82b85f4be89d7d8586c5350a7d/lib/clockwork/event.rb#L64-L66

For a 24 hour period (3am Sunday to 3am monday) daily jobs will not run because the maximum time elapsed will be 23 hours.