Make EnqueueableDataUpdate use DB domain IDs
authorAaron Schulz <aschulz@wikimedia.org>
Tue, 19 Mar 2019 16:01:24 +0000 (09:01 -0700)
committerAaron Schulz <aschulz@wikimedia.org>
Wed, 27 Mar 2019 17:40:30 +0000 (17:40 +0000)
This makes it consistent with what JobQueueGroup actually expects.

Change-Id: Id6c6b3bf19fb1e85a2e3e231d216974d831a2f7c

includes/deferred/DeferredUpdates.php
includes/deferred/EnqueueableDataUpdate.php
includes/deferred/LinksDeletionUpdate.php
includes/deferred/LinksUpdate.php

index 67b5490..3043c10 100644 (file)
@@ -263,7 +263,8 @@ class DeferredUpdates {
                        if ( $mode === 'enqueue' && $update instanceof EnqueueableDataUpdate ) {
                                // Run only the job enqueue logic to complete the update later
                                $spec = $update->getAsJobSpecification();
-                               JobQueueGroup::singleton( $spec['wiki'] )->push( $spec['job'] );
+                               $domain = $spec['domain'] ?? $spec['wiki'];
+                               JobQueueGroup::singleton( $domain )->push( $spec['job'] );
                        } elseif ( $update instanceof TransactionRoundDefiningUpdate ) {
                                $update->doUpdate();
                        } else {
index ffeb740..3a77f54 100644 (file)
@@ -9,7 +9,7 @@
  */
 interface EnqueueableDataUpdate {
        /**
-        * @return array (wiki => wiki ID, job => IJobSpecification)
+        * @return array (domain => DB domain ID, job => IJobSpecification)
         */
        public function getAsJobSpecification();
 }
index 0743dbe..4444bac 100644 (file)
@@ -225,8 +225,8 @@ class LinksDeletionUpdate extends DataUpdate implements EnqueueableDataUpdate {
 
        public function getAsJobSpecification() {
                return [
-                       'wiki' => WikiMap::getWikiIdFromDbDomain( $this->getDB()->getDomainID() ),
-                       'job'  => new JobSpecification(
+                       'domain' => $this->getDB()->getDomainID(),
+                       'job' => new JobSpecification(
                                'deleteLinks',
                                [ 'pageId' => $this->pageId, 'timestamp' => $this->timestamp ],
                                [ 'removeDuplicates' => true ],
index 7a31e26..045795e 100644 (file)
@@ -1205,7 +1205,7 @@ class LinksUpdate extends DataUpdate implements EnqueueableDataUpdate {
                }
 
                return [
-                       'wiki' => WikiMap::getWikiIdFromDbDomain( $this->getDB()->getDomainID() ),
+                       'domain' => $this->getDB()->getDomainID(),
                        'job'  => new JobSpecification(
                                'refreshLinksPrioritized',
                                [