X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Fjobqueue%2Fjobs%2FRefreshLinksJob.php;h=0b6d30776bf73d73460f44a2d436132c95489087;hp=5c92874e795d61e1919becb14c45f74078b68218;hb=74d04edec385aa86ee01943b9a27475d79f74e78;hpb=1dc2212bc68c44963d1b32235bd6c80643999fd3 diff --git a/includes/jobqueue/jobs/RefreshLinksJob.php b/includes/jobqueue/jobs/RefreshLinksJob.php index 5c92874e79..0b6d30776b 100644 --- a/includes/jobqueue/jobs/RefreshLinksJob.php +++ b/includes/jobqueue/jobs/RefreshLinksJob.php @@ -247,43 +247,24 @@ class RefreshLinksJob extends Job { $stats->increment( 'refreshlinks.parser_uncached' ); } - $updates = $content->getSecondaryDataUpdates( - $title, - null, - !empty( $this->params['useRecursiveLinksUpdate'] ), - $parserOutput - ); - - // For legacy hook handlers doing updates via LinksUpdateConstructed, make sure - // any pending writes they made get flushed before the doUpdate() calls below. - // This avoids snapshot-clearing errors in LinksUpdate::acquirePageLock(). - $lbFactory->commitAndWaitForReplication( __METHOD__, $ticket ); - - foreach ( $updates as $update ) { - // Carry over cause in case so the update can do extra logging - $update->setCause( $this->params['causeAction'], $this->params['causeAgent'] ); - // FIXME: This code probably shouldn't be here? - // Needed by things like Echo notifications which need - // to know which user caused the links update - if ( $update instanceof LinksUpdate ) { - $update->setRevision( $revision ); - if ( !empty( $this->params['triggeringUser'] ) ) { - $userInfo = $this->params['triggeringUser']; - if ( $userInfo['userId'] ) { - $user = User::newFromId( $userInfo['userId'] ); - } else { - // Anonymous, use the username - $user = User::newFromName( $userInfo['userName'], false ); - } - $update->setTriggeringUser( $user ); - } + $options = [ + 'recursive' => !empty( $this->params['useRecursiveLinksUpdate'] ), + // Carry over cause so the update can do extra logging + 'causeAction' => $this->params['causeAction'], + 'causeAgent' => $this->params['causeAgent'], + 'defer' => false, + 'transactionTicket' => $ticket, + ]; + if ( !empty( $this->params['triggeringUser'] ) ) { + $userInfo = $this->params['triggeringUser']; + if ( $userInfo['userId'] ) { + $options['triggeringUser'] = User::newFromId( $userInfo['userId'] ); + } else { + // Anonymous, use the username + $options['triggeringUser'] = User::newFromName( $userInfo['userName'], false ); } } - - foreach ( $updates as $update ) { - $update->setTransactionTicket( $ticket ); - $update->doUpdate(); - } + $page->doSecondaryDataUpdates( $options ); InfoAction::invalidateCache( $title );