/** * this method checks for each cache entry of * a webservice if it has to be deleted * * @param webservice $ws */ private function cleanWSCacheEntries($ws) { $log = SGAGardeningIssuesAccess::getGardeningIssuesAccess(); if ($ws->getSpanOfLife() != "0") { $cacheResults = WSStorage::getDatabase()->getResultsFromCache($ws->getArticleID()); $this->addSubTask(sizeof($cacheResults) + 1); //echo($ws->getArticleID()); $deletedCacheEntries = 0; foreach ($cacheResults as $cacheResult) { if ($ws->doesExpireAfterUpdate() == "false") { if ($cacheResult["lastAccess"]) { if (wfTimestamp(TS_UNIX, $cacheResult["lastAccess"]) < wfTimestamp(TS_UNIX, $cacheResult["lastUpdate"])) { $compareTS = $cacheResult["lastUpdate"]; } else { $compareTS = $cacheResult["lastAccess"]; } } else { $compareTS = $cacheResult["lastUpdate"]; } } else { $compareTS = $cacheResult["lastUpdate"]; } //todo: change to days again if (wfTime() - wfTimestamp(TS_UNIX, $compareTS) > $ws->getSpanOfLife() * 24 * 60 * 60) { WSStorage::getDatabase()->removeWSEntryFromCache($ws->getArticleID(), $cacheResult["paramSetId"]); $deletedCacheEntries += 1; } $this->worked(1); } // echo($ws->getName()."-".$deletedCacheEntries); if ($deletedCacheEntries > 0) { $log->addGardeningIssueAboutValue($this->id, SMW_GARDISSUE__REMOVED_WSCACHE_ENTRIES, Title::newFromText($ws->getName()), $deletedCacheEntries); } } else { $this->addSubTask(1); $this->worked(1); } }