diff options
author | Amir Sarabadani <ladsgroup@gmail.com> | 2023-11-01 19:18:30 +0100 |
---|---|---|
committer | Amir Sarabadani <ladsgroup@gmail.com> | 2023-11-01 23:09:00 +0100 |
commit | 2999f480bec7c35d9a76b29d7ff457628f53dfac (patch) | |
tree | 265e01e0a009965346b09762d1c44a1826b39b05 /includes/SiteStats/SiteStatsInit.php | |
parent | 3af76512c7dfd4008dca0365d73819bac27e6c70 (diff) | |
download | mediawikicore-2999f480bec7c35d9a76b29d7ff457628f53dfac.tar.gz mediawikicore-2999f480bec7c35d9a76b29d7ff457628f53dfac.zip |
SiteStats: Use ICP in SiteStatsInit
Much cleaner.
Bug: T330641
Change-Id: I5331157821a5ccd13247eed88a8ac51832b0c51a
Diffstat (limited to 'includes/SiteStats/SiteStatsInit.php')
-rw-r--r-- | includes/SiteStats/SiteStatsInit.php | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/includes/SiteStats/SiteStatsInit.php b/includes/SiteStats/SiteStatsInit.php index a314f1508ed0..5d1f92ab3769 100644 --- a/includes/SiteStats/SiteStatsInit.php +++ b/includes/SiteStats/SiteStatsInit.php @@ -24,12 +24,13 @@ use MediaWiki\MainConfigNames; use MediaWiki\MediaWikiServices; use SiteStatsUpdate; use Wikimedia\Rdbms\IDatabase; +use Wikimedia\Rdbms\IReadableDatabase; /** * Class designed for counting of stats. */ class SiteStatsInit { - /** @var IDatabase */ + /** @var IReadableDatabase */ private $dbr; /** @var int */ private $edits; @@ -43,17 +44,17 @@ class SiteStatsInit { private $files; /** - * @param bool|IDatabase $database + * @param bool|IReadableDatabase $database * - bool: Whether to use the primary DB * - IDatabase: Database connection to use */ public function __construct( $database = false ) { - if ( $database instanceof IDatabase ) { + if ( $database instanceof IReadableDatabase ) { $this->dbr = $database; } elseif ( $database ) { - $this->dbr = self::getDB( DB_PRIMARY ); + $this->dbr = self::getPrimaryDB(); } else { - $this->dbr = self::getDB( DB_REPLICA, 'vslow' ); + $this->dbr = self::getReplicaDB(); } } @@ -154,7 +155,7 @@ class SiteStatsInit { // Count active users if need be if ( $options['activeUsers'] ) { - SiteStatsUpdate::cacheUpdate( self::getDB( DB_PRIMARY ) ); + SiteStatsUpdate::cacheUpdate( self::getPrimaryDB() ); } } @@ -162,7 +163,7 @@ class SiteStatsInit { * Insert a dummy row with all zeroes if no row is present */ public static function doPlaceholderInit() { - $dbw = self::getDB( DB_PRIMARY ); + $dbw = self::getPrimaryDB(); $exists = (bool)$dbw->newSelectQueryBuilder() ->select( '1' ) ->from( 'site_stats' ) @@ -202,7 +203,7 @@ class SiteStatsInit { 'ss_images' => $this->getShardedValue( $this->files ?? $this->files(), $shardCnt, $i ), ]; $row = [ 'ss_row_id' => $i ] + $set; - self::getDB( DB_PRIMARY )->newInsertQueryBuilder() + self::getPrimaryDB()->newInsertQueryBuilder() ->insertInto( 'site_stats' ) ->row( $row ) ->onDuplicateKeyUpdate() @@ -220,7 +221,7 @@ class SiteStatsInit { ]; $row = [ 'ss_row_id' => 1 ] + $set; - self::getDB( DB_PRIMARY )->newInsertQueryBuilder() + self::getPrimaryDB()->newInsertQueryBuilder() ->insertInto( 'site_stats' ) ->row( $row ) ->onDuplicateKeyUpdate() @@ -230,15 +231,16 @@ class SiteStatsInit { } } - /** - * @param int $index - * @param string[]|string $groups - * @return IDatabase - */ - private static function getDB( $index, $groups = [] ) { + private static function getReplicaDB(): IReadableDatabase { + return MediaWikiServices::getInstance() + ->getDBLoadBalancerFactory() + ->getReplicaDatabase( false, 'vslow' ); + } + + private static function getPrimaryDB(): IDatabase { return MediaWikiServices::getInstance() - ->getDBLoadBalancer() - ->getConnectionRef( $index, $groups ); + ->getDBLoadBalancerFactory() + ->getPrimaryDatabase(); } } |