Merge "Optimize JobQueue utilization in UserGroupMembership::insert()"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 11 Jul 2019 22:42:37 +0000 (22:42 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 11 Jul 2019 22:42:37 +0000 (22:42 +0000)
includes/user/UserGroupMembership.php

index e06df9f..eb55567 100644 (file)
@@ -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 ) {