X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Fdeferred%2FSiteStatsUpdate.php;h=8c38d8b0ca46f18b4e40da665ec6db6cc51df88d;hp=74266241c89a63b878bf90a468776ce64962ee91;hb=64b83bdb3afd0ee4f8fc1893a865409c198e601e;hpb=69fab9a8179350fc01876d9ea3a253d6e080e1db diff --git a/includes/deferred/SiteStatsUpdate.php b/includes/deferred/SiteStatsUpdate.php index 74266241c8..8c38d8b0ca 100644 --- a/includes/deferred/SiteStatsUpdate.php +++ b/includes/deferred/SiteStatsUpdate.php @@ -19,6 +19,7 @@ */ use MediaWiki\MediaWikiServices; use Wikimedia\Assert\Assert; +use Wikimedia\Rdbms\IDatabase; /** * Class for handling updates to the site_stats table @@ -93,7 +94,7 @@ class SiteStatsUpdate implements DeferrableUpdate, MergeableUpdate { global $wgSiteStatsAsyncFactor; $dbw = wfGetDB( DB_MASTER ); - $lockKey = wfMemcKey( 'site_stats' ); // prepend wiki ID + $lockKey = wfWikiID() . ':site_stats'; // prepend wiki ID $pd = []; if ( $wgSiteStatsAsyncFactor ) { // Lock the table so we don't have double DB/memcached updates @@ -206,12 +207,13 @@ class SiteStatsUpdate implements DeferrableUpdate, MergeableUpdate { } /** + * @param BagOStuff $cache * @param string $type * @param string $sign ('+' or '-') * @return string */ - private function getTypeCacheKey( $type, $sign ) { - return wfMemcKey( 'sitestatsupdate', 'pendingdelta', $type, $sign ); + private function getTypeCacheKey( BagOStuff $cache, $type, $sign ) { + return $cache->makeKey( 'sitestatsupdate', 'pendingdelta', $type, $sign ); } /** @@ -221,11 +223,11 @@ class SiteStatsUpdate implements DeferrableUpdate, MergeableUpdate { * @param int $delta Delta (positive or negative) */ protected function adjustPending( $type, $delta ) { - $cache = ObjectCache::getMainStashInstance(); + $cache = MediaWikiServices::getInstance()->getMainObjectStash(); if ( $delta < 0 ) { // decrement - $key = $this->getTypeCacheKey( $type, '-' ); + $key = $this->getTypeCacheKey( $cache, $type, '-' ); } else { // increment - $key = $this->getTypeCacheKey( $type, '+' ); + $key = $this->getTypeCacheKey( $cache, $type, '+' ); } $magnitude = abs( $delta ); @@ -237,7 +239,7 @@ class SiteStatsUpdate implements DeferrableUpdate, MergeableUpdate { * @return array Positive and negative deltas for each type */ protected function getPendingDeltas() { - $cache = ObjectCache::getMainStashInstance(); + $cache = MediaWikiServices::getInstance()->getMainObjectStash(); $pending = []; foreach ( [ 'ss_total_edits', @@ -245,8 +247,8 @@ class SiteStatsUpdate implements DeferrableUpdate, MergeableUpdate { ) { // Get pending increments and pending decrements $flg = BagOStuff::READ_LATEST; - $pending[$type]['+'] = (int)$cache->get( $this->getTypeCacheKey( $type, '+' ), $flg ); - $pending[$type]['-'] = (int)$cache->get( $this->getTypeCacheKey( $type, '-' ), $flg ); + $pending[$type]['+'] = (int)$cache->get( $this->getTypeCacheKey( $cache, $type, '+' ), $flg ); + $pending[$type]['-'] = (int)$cache->get( $this->getTypeCacheKey( $cache, $type, '-' ), $flg ); } return $pending; @@ -257,12 +259,12 @@ class SiteStatsUpdate implements DeferrableUpdate, MergeableUpdate { * @param array $pd Result of getPendingDeltas(), used for DB update */ protected function removePendingDeltas( array $pd ) { - $cache = ObjectCache::getMainStashInstance(); + $cache = MediaWikiServices::getInstance()->getMainObjectStash(); foreach ( $pd as $type => $deltas ) { foreach ( $deltas as $sign => $magnitude ) { // Lower the pending counter now that we applied these changes - $cache->decr( $this->getTypeCacheKey( $type, $sign ), $magnitude ); + $cache->decr( $this->getTypeCacheKey( $cache, $type, $sign ), $magnitude ); } } }