From: Aaron Schulz Date: Fri, 29 Mar 2019 01:59:42 +0000 (-0700) Subject: Make RefreshLinksJob run DataUpdates such that they have outer scope X-Git-Tag: 1.34.0-rc.0~2230^2 X-Git-Url: http://git.cyclocoop.org/%7B%24admin_url%7Dcompta/comptes/journal.php?a=commitdiff_plain;h=83933a436e1ee9d3eaaa4ac86f9997d3b469f959;p=lhc%2Fweb%2Fwiklou.git Make RefreshLinksJob run DataUpdates such that they have outer scope This is how DeferrableUpdates are supposed to run as documented. Change-Id: Ie4fb8c9a64b94bc2422d7e51391998315f4eeddb --- diff --git a/includes/jobqueue/jobs/RefreshLinksJob.php b/includes/jobqueue/jobs/RefreshLinksJob.php index 7f9b2a3670..0cfaebea71 100644 --- a/includes/jobqueue/jobs/RefreshLinksJob.php +++ b/includes/jobqueue/jobs/RefreshLinksJob.php @@ -54,6 +54,8 @@ class RefreshLinksJob extends Job { !( isset( $params['pages'] ) && count( $params['pages'] ) != 1 ) ); $this->params += [ 'causeAction' => 'unknown', 'causeAgent' => 'unknown' ]; + // This will control transaction rounds in order to run DataUpdates + $this->executionFlags |= self::JOB_NO_EXPLICIT_TRX_ROUND; } /** @@ -145,6 +147,8 @@ class RefreshLinksJob extends Job { $renderer = $services->getRevisionRenderer(); $ticket = $lbFactory->getEmptyTransactionTicket( __METHOD__ ); + $lbFactory->beginMasterChanges( __METHOD__ ); + $page = WikiPage::factory( $title ); $page->loadPageData( WikiPage::READ_LATEST ); @@ -284,6 +288,9 @@ class RefreshLinksJob extends Job { $options['triggeringUser'] = User::newFromName( $userInfo['userName'], false ); } } + + $lbFactory->commitMasterChanges( __METHOD__ ); + $page->doSecondaryDataUpdates( $options ); InfoAction::invalidateCache( $title );