Make pvoutput reports align with status interval wall clock time#212
Open
bigjools wants to merge 1 commit intobohdan-s:mainfrom
Open
Make pvoutput reports align with status interval wall clock time#212bigjools wants to merge 1 commit intobohdan-s:mainfrom
bigjools wants to merge 1 commit intobohdan-s:mainfrom
Conversation
The previous code had a problem where it would do an intitial report
on start up and then add status_interval minutes to the next report
time *after* it had finished processing.
This causes 2 problems:
1. Time drift - the report time interval is longer than the actual
status_interval so over the course of the day ends up being later
and later which can lead to a gap in the pvoutput data.
2. The report time is unpredictable, which will cause clashes with other
systems that report consumption data each time the report time
drifts enough to clash with the other system's upload with the
end result that one cancels out the other.
To fix bohdan-s#2, the second system just needs to report the same report
timestamp 30 seconds later than the first.
The fix here aligns the report time to a rounded fraction of the
wall clock time so that it matches the wall clock time on pvoutput's
list of reports on the UI. Typically if you report every 5 minutes,
it will now send a report to pvoutput at :00, :05, :10, etc.
instead of the previous non-rounded times that drifted forward.
Author
pedbarbosa
added a commit
to pedbarbosa/docker-sungather
that referenced
this pull request
Apr 22, 2025
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.

The previous code had a problem where it would do an intitial report on start up and then add status_interval minutes to the next report time after it had finished processing.
This causes 2 problems:
To fix #2, the second system just needs to report the same report timestamp 30 seconds later than the first.
The fix here aligns the report time to a rounded fraction of the wall clock time so that it matches the wall clock time on pvoutput's list of reports on the UI. Typically if you report every 5 minutes, it will now send a report to pvoutput at :00, :05, :10, etc. instead of the previous non-rounded times that drifted forward.