diff options
-rw-r--r-- | core/CronArchive.php | 41 |
1 files changed, 38 insertions, 3 deletions
diff --git a/core/CronArchive.php b/core/CronArchive.php index 1859e9fbba..5e1770c047 100644 --- a/core/CronArchive.php +++ b/core/CronArchive.php @@ -427,10 +427,10 @@ class CronArchive if ($this->archiveAndRespectTTL) { Option::clearCachedOption($this->lastRunKey($idSite, "periods")); - $lastTimestampWebsiteProcessedPeriods = Option::get($this->lastRunKey($idSite, "periods")); + $lastTimestampWebsiteProcessedPeriods = $this->getPeriodLastProcessedTimestamp($idSite); Option::clearCachedOption($this->lastRunKey($idSite, "day")); - $lastTimestampWebsiteProcessedDay = Option::get($this->lastRunKey($idSite, "day")); + $lastTimestampWebsiteProcessedDay = $this->getDayLastProcessedTimestamp($idSite); } $this->updateIdSitesInvalidatedOldReports(); @@ -895,7 +895,7 @@ class CronArchive { $this->todayArchiveTimeToLive = Rules::getTodayArchiveTimeToLive(); $this->processPeriodsMaximumEverySeconds = $this->getDelayBetweenPeriodsArchives(); - $this->lastSuccessRunTimestamp = Option::get(self::OPTION_ARCHIVING_FINISHED_TS); + $this->lastSuccessRunTimestamp = $this->getLastSuccessRunTimestamp(); $this->shouldArchiveOnlySitesWithTrafficSince = $this->isShouldArchiveAllSitesWithTrafficSince(); $this->shouldArchiveOnlySpecificPeriods = $this->getPeriodsToProcess(); @@ -1386,4 +1386,39 @@ class CronArchive return self::MAX_CONCURRENT_API_REQUESTS; } + + /** + * @param $idSite + * @return false|string + */ + private function getPeriodLastProcessedTimestamp($idSite) + { + $timestamp = Option::get($this->lastRunKey($idSite, "periods")); + return $this->sanitiseTimestamp($timestamp); + } + + /** + * @param $idSite + * @return false|string + */ + private function getDayLastProcessedTimestamp($idSite) + { + $timestamp = Option::get($this->lastRunKey($idSite, "day")); + return $this->sanitiseTimestamp($timestamp); + } + + /** + * @return false|string + */ + private function getLastSuccessRunTimestamp() + { + $timestamp = Option::get(self::OPTION_ARCHIVING_FINISHED_TS); + return $this->sanitiseTimestamp($timestamp); + } + + private function sanitiseTimestamp($timestamp) + { + $now = time(); + return ($timestamp < $now) ? $timestamp : $now; + } } |