diff options
Diffstat (limited to 'plugins/CoreAdminHome/Tasks.php')
-rw-r--r-- | plugins/CoreAdminHome/Tasks.php | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/plugins/CoreAdminHome/Tasks.php b/plugins/CoreAdminHome/Tasks.php index ad81187aa8..ff3ae6497f 100644 --- a/plugins/CoreAdminHome/Tasks.php +++ b/plugins/CoreAdminHome/Tasks.php @@ -252,11 +252,30 @@ class Tasks extends \Piwik\Plugin\Tasks public function purgeInvalidatedArchives() { + $purgedDates = []; + $archivesToPurge = new ArchivesToPurgeDistributedList(); foreach ($archivesToPurge->getAllAsDates() as $date) { $this->archivePurger->purgeInvalidatedArchivesFrom($date); $archivesToPurge->removeDate($date); + + $purgedDates[$date->toString('Y-m')] = true; + } + + // purge from today if not done already since we will have many archives to remove + $today = Date::today(); + $todayStr = $today->toString('Y-m'); + if (empty($purgedDates[$todayStr])) { + $this->archivePurger->purgeInvalidatedArchivesFrom($today); + $purgedDates[$todayStr] = true; + } + + // handle yesterday if it belongs to a different month + $yesterday = Date::yesterday(); + $yesterdayStr = $yesterday->toString('Y-m'); + if (empty($purgedDates[$yesterdayStr])) { + $this->archivePurger->purgeInvalidatedArchivesFrom($yesterday); } } |