Software /
code /
prosody
Diff
plugins/mod_cron.lua @ 12186:7f25ac9d8f0d
mod_cron: Allow for a small amount of timer drift
If the timer activates a bit early then a task might be just a few
seconds short of being allowed to run. This would run such a task rather
than wait another hour.
The value 0.5% chosen so that a weekly task does not run an entire hour
earlier than last time.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 15 Jan 2022 09:09:24 +0100 |
parent | 12009:f6fff0658108 |
child | 12489:8b42575738f0 |
line wrap: on
line diff
--- a/plugins/mod_cron.lua Fri Jan 14 17:00:13 2022 +0000 +++ b/plugins/mod_cron.lua Sat Jan 15 09:09:24 2022 +0100 @@ -40,7 +40,7 @@ function host_module.unload() active_hosts[host_module.host] = nil; end end -local function should_run(when, last) return not last or last + periods[when] <= os.time() end +local function should_run(when, last) return not last or last + periods[when] * 0.995 <= os.time() end local function run_task(task) local started_at = os.time();