From 9e8ad1a560ece73928d9d34605aabeb38d61b743 Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Fri, 5 Jul 2019 16:27:43 -0700 Subject: [PATCH] Optimize JobQueue utilization in UserGroupMembership::insert() Change-Id: I20d6d753221616817150f34307a8ffaf1bb74ae8 --- includes/user/UserGroupMembership.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/includes/user/UserGroupMembership.php b/includes/user/UserGroupMembership.php index e06df9fd23..eb555672a2 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 ) { -- 2.20.1