reset next job execution if the system time has been moved backwards#480
Open
drakkan wants to merge 1 commit intorobfig:masterfrom
Open
reset next job execution if the system time has been moved backwards#480drakkan wants to merge 1 commit intorobfig:masterfrom
drakkan wants to merge 1 commit intorobfig:masterfrom
Conversation
8266a9d to
db24a8b
Compare
db24a8b to
217a1e4
Compare
CybotTM
added a commit
to netresearch/go-cron
that referenced
this pull request
Nov 25, 2025
- Add detection for system time moving backwards (NTP correction, VM snapshot restore) and reschedule affected entries (robfig#480) - Pre-allocate slice in removeEntry to avoid reallocations (robfig#539) - Add tests for time backwards detection and WithSeconds option
2 tasks
|
Solution available in maintained fork This feature has been implemented in netresearch/go-cron, a maintained fork of this library. Implementation: The scheduler now gracefully handles system time moving backwards (e.g., NTP corrections, manual clock adjustments). When time goes backwards, entries are re-evaluated against the new time to ensure correct scheduling. How to migrate: // Change import from:
import "github.com/robfig/cron/v3"
// To:
import cron "github.com/netresearch/go-cron"The API is 100% backward compatible. See the migration guide for details. Related: netresearch#52 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Suppose you have a job scheduled every minute.
The current time is 15:00:00 and for reasons outside our control it is set to 17:00:00, the job runs as expected and "Next" will be set to 17:01:00.
If the system clock returns to the correct time and so now is, for example, 15:01:00, when we calculate the duration of the timer here
cron/cron.go
Line 259 in bc59245
we will have something like 2 hours and then no job runs for 2 hours.
This patch fixes the issue. Thank you