jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/394400 )

Change subject: jobs: Remove ClearUserWatchlistJob 'batchSize' option
......................................................................


jobs: Remove ClearUserWatchlistJob 'batchSize' option

Use $wgUpdateRowsPerQuery instead, and use its value at run-time
instead of inside the job parameters. Also helps with deduplication
if batchSize is changed.

Change-Id: Ifef25a3ae5ae2418359a41eba05778613fbb548f
---
M includes/jobqueue/jobs/ClearUserWatchlistJob.php
M tests/phpunit/includes/jobqueue/jobs/ClearUserWatchlistJobTest.php
2 files changed, 8 insertions(+), 8 deletions(-)

Approvals:
  Addshore: Looks good to me, approved
  jenkins-bot: Verified
  Jcrespo: Looks good to me, but someone else must approve



diff --git a/includes/jobqueue/jobs/ClearUserWatchlistJob.php 
b/includes/jobqueue/jobs/ClearUserWatchlistJob.php
index 17c4b66..3e8b2ad 100644
--- a/includes/jobqueue/jobs/ClearUserWatchlistJob.php
+++ b/includes/jobqueue/jobs/ClearUserWatchlistJob.php
@@ -28,15 +28,10 @@
        /**
         * @param Title|null $title Not used by this job.
         * @param array $params
-        *  - batchSize,      Number of watchlist entries to remove at once.
         *  - userId,         The ID for the user whose watchlist is being 
cleared.
         *  - maxWatchlistId, The maximum wl_id at the time the job was first 
created,
         */
        public function __construct( Title $title = null, array $params ) {
-               if ( !array_key_exists( 'batchSize', $params ) ) {
-                       $params['batchSize'] = 1000;
-               }
-
                parent::__construct(
                        'clearUserWatchlist',
                        SpecialPage::getTitleFor( 'EditWatchlist', 'clear' ),
@@ -47,8 +42,10 @@
        }
 
        public function run() {
+               global $wgUpdateRowsPerQuery;
                $userId = $this->params['userId'];
                $maxWatchlistId = $this->params['maxWatchlistId'];
+               $batchSize = $wgUpdateRowsPerQuery;
 
                $loadBalancer = 
MediaWikiServices::getInstance()->getDBLoadBalancer();
                $dbw = $loadBalancer->getConnection( DB_MASTER );
@@ -86,7 +83,7 @@
                        __METHOD__,
                        [
                                'ORDER BY' => 'wl_id ASC',
-                               'LIMIT' => $this->params['batchSize'],
+                               'LIMIT' => $batchSize,
                        ]
                );
 
@@ -101,7 +98,9 @@
                $lbf->commitMasterChanges( __METHOD__ );
                unset( $scopedLock );
 
-               if ( count( $watchlistIds ) == $this->params['batchSize'] ) {
+               if ( count( $watchlistIds ) === (int)$batchSize ) {
+                       // Until we get less results than the limit, 
recursively push
+                       // the same job again.
                        JobQueueGroup::singleton()->push( new self( 
$this->getTitle(), $this->getParams() ) );
                }
 
diff --git a/tests/phpunit/includes/jobqueue/jobs/ClearUserWatchlistJobTest.php 
b/tests/phpunit/includes/jobqueue/jobs/ClearUserWatchlistJobTest.php
index 385ecb7..b5257a3 100644
--- a/tests/phpunit/includes/jobqueue/jobs/ClearUserWatchlistJobTest.php
+++ b/tests/phpunit/includes/jobqueue/jobs/ClearUserWatchlistJobTest.php
@@ -48,12 +48,13 @@
                $watchedItemStore->addWatch( $user, new TitleValue( 0, 'C' ) );
                $watchedItemStore->addWatch( $user, new TitleValue( 1, 'C' ) );
 
+               $this->setMwGlobals( 'wgUpdateRowsPerQuery', 2 );
+
                JobQueueGroup::singleton()->push(
                        new ClearUserWatchlistJob(
                                null,
                                [
                                        'userId' => $user->getId(),
-                                       'batchSize' => 2,
                                        'maxWatchlistId' => $maxId,
                                ]
                        )

-- 
To view, visit https://gerrit.wikimedia.org/r/394400
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ifef25a3ae5ae2418359a41eba05778613fbb548f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Krinkle <krinklem...@gmail.com>
Gerrit-Reviewer: Aaron Schulz <asch...@wikimedia.org>
Gerrit-Reviewer: Addshore <addshorew...@gmail.com>
Gerrit-Reviewer: Jcrespo <jcre...@wikimedia.org>
Gerrit-Reviewer: Krinkle <krinklem...@gmail.com>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to