$batchSize = $wgUpdateRowsPerQuery;
$loadBalancer = MediaWikiServices::getInstance()->getDBLoadBalancer();
- $dbw = $loadBalancer->getConnection( DB_MASTER );
- $dbr = $loadBalancer->getConnection( DB_REPLICA, [ 'watchlist' ] );
+ $dbw = $loadBalancer->getConnectionRef( DB_MASTER );
+ $dbr = $loadBalancer->getConnectionRef( DB_REPLICA, [ 'watchlist' ] );
// Wait before lock to try to reduce time waiting in the lock.
- if ( !$loadBalancer->safeWaitForMasterPos( $dbr ) ) {
+ if ( !$loadBalancer->waitForMasterPos( $dbr ) ) {
$this->setLastError( 'Timed out waiting for replica to catch up before lock' );
return false;
}
// Use a named lock so that jobs for this user see each others' changes
- $lockKey = "ClearUserWatchlistJob:$userId";
+ $lockKey = "{{$dbw->getDomainID()}}:ClearUserWatchlist:$userId"; // per-wiki
$scopedLock = $dbw->getScopedLockAndFlush( $lockKey, __METHOD__, 10 );
if ( !$scopedLock ) {
$this->setLastError( "Could not acquire lock '$lockKey'" );
return false;
}
- if ( !$loadBalancer->safeWaitForMasterPos( $dbr ) ) {
+ if ( !$loadBalancer->waitForMasterPos( $dbr ) ) {
$this->setLastError( 'Timed out waiting for replica to catch up within lock' );
return false;
}