Skip to content

Commit b984605

Browse files
committed
Check idarchive caching
1 parent ada4da1 commit b984605

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed

core/Archive.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,12 @@ public function __construct(
213213
$this->forceIndexedByDate = $forceIndexedByDate;
214214
}
215215

216+
public function clearCache(): void
217+
{
218+
$this->idarchives = [];
219+
$this->idarchiveStates = [];
220+
}
221+
216222
/**
217223
* Returns a new Archive instance that will query archive data for the given set of
218224
* sites and periods, using an optional Segment.
@@ -985,6 +991,7 @@ private function prepareArchive(array $archiveNamesByPlugin, Site $site, Period
985991
continue;
986992
}
987993

994+
// "all plugins" done flag used for plugin idarchive
988995
$this->idarchives[$doneFlag][$periodString][] = $idArchive;
989996
$this->idarchiveStates[$idSite][$doneFlag][$periodString][$idArchive] = ArchiveWriter::DONE_OK;
990997
}

core/ArchiveProcessor/PluginsArchiver.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,10 @@ public function callAggregateAllPlugins($visits, $visitsConverted, $forceArchivi
172172
}
173173

174174
if ($this->shouldProcessReportsForPlugin($pluginName)) {
175+
if (null !== $this->archiveProcessor->archive) {
176+
$this->archiveProcessor->archive->clearCache();
177+
}
178+
175179
$this->logAggregator->setQueryOriginHint($pluginName);
176180

177181
try {

tests/PHPUnit/Integration/ArchiveCronReusePluginArchivesTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public function testSegmentArchivingUsesExistingPluginArchivesForAllPluginsArchi
8080
$dataTable = VisitsSummaryAPI::getInstance()->get($this->idSite, 'week', $this->dateTime->toString('Y-m-d'), $this->segmentDef);
8181
self::assertEquals(2, $dataTable->getFirstRow()->getColumn('nb_visits'));
8282
$dataTable = GoalsAPI::getInstance()->get($this->idSite, 'week', $this->dateTime->toString('Y-m-d'), $this->segmentDef);
83-
self::assertEquals(0, $dataTable->getFirstRow()->getColumn('nb_conversions'));
83+
self::assertEquals(2, $dataTable->getFirstRow()->getColumn('nb_conversions'));
8484

8585
// force rearchiving of the days using cron to verify 2 conversions for the week
8686
$invalidator = StaticContainer::get(ArchiveInvalidator::class);

0 commit comments

Comments
 (0)