X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fuser%2FUserGroupMembership.php;h=fdac4a237b10f392933361ee7df5b3e225e0c461;hb=bd5a37aacf600bdd5f3a6e7998f92bd1d9326a8a;hp=170e6a0d5360360c016aab00b2d5aa8e2a03c121;hpb=d4cb1968c844fcd4e29e6ba40751f6639dca0e53;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/user/UserGroupMembership.php b/includes/user/UserGroupMembership.php index 170e6a0d53..fdac4a237b 100644 --- a/includes/user/UserGroupMembership.php +++ b/includes/user/UserGroupMembership.php @@ -159,7 +159,15 @@ class UserGroupMembership { } // Purge old, expired memberships from the DB - JobQueueGroup::singleton()->push( new UserGroupExpiryJob() ); + $hasExpiredRow = $dbw->selectField( + 'user_groups', + '1', + [ 'ug_expiry < ' . $dbw->addQuotes( $dbw->timestamp() ) ], + __METHOD__ + ); + if ( $hasExpiredRow ) { + JobQueueGroup::singleton()->lazyPush( new UserGroupExpiryJob() ); + } // Check that the values make sense if ( $this->group === null ) { @@ -248,7 +256,7 @@ class UserGroupMembership { $lbFactory = $services->getDBLoadBalancerFactory(); $ticket = $lbFactory->getEmptyTransactionTicket( __METHOD__ ); - $dbw = $services->getDBLoadBalancer()->getConnection( DB_MASTER ); + $dbw = $services->getDBLoadBalancer()->getConnectionRef( DB_MASTER ); $lockKey = "{$dbw->getDomainID()}:UserGroupMembership:purge"; // per-wiki $scopedLock = $dbw->getScopedLockAndFlush( $lockKey, __METHOD__, 0 );