diff options
author | jenkins-bot <jenkins-bot@gerrit.wikimedia.org> | 2024-06-28 11:44:24 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@wikimedia.org> | 2024-06-28 11:44:24 +0000 |
commit | 68cebdfbb08fe6d37d93aee7e73532e947bb5d7c (patch) | |
tree | 31521e6ded243c0ce06017e38e575f32e29d4bb2 /maintenance | |
parent | 17a5a0c666664d7c6a46343b3f60018f0f189c37 (diff) | |
parent | 105bb58ae2049ebe0fc55c5ca541c3e8b630cc77 (diff) | |
download | mediawikicore-68cebdfbb08fe6d37d93aee7e73532e947bb5d7c.tar.gz mediawikicore-68cebdfbb08fe6d37d93aee7e73532e947bb5d7c.zip |
Merge "[ParsoidCachePrewarmJob] Use ParserOutputAccess"
Diffstat (limited to 'maintenance')
-rw-r--r-- | maintenance/prewarmParsoidParserCache.php | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/maintenance/prewarmParsoidParserCache.php b/maintenance/prewarmParsoidParserCache.php index dc4d08d2b854..94abbeebf8b1 100644 --- a/maintenance/prewarmParsoidParserCache.php +++ b/maintenance/prewarmParsoidParserCache.php @@ -1,12 +1,14 @@ <?php -use MediaWiki\Page\PageIdentity; use MediaWiki\Page\PageLookup; +use MediaWiki\Page\PageRecord; use MediaWiki\Page\ParserOutputAccess; use MediaWiki\Parser\Parsoid\Config\SiteConfig as ParsoidSiteConfig; -use MediaWiki\Parser\Parsoid\ParsoidOutputAccess; use MediaWiki\Revision\RevisionLookup; use MediaWiki\Revision\RevisionRecord; use MediaWiki\Revision\SlotRecord; +use MediaWiki\Status\Status; +use Wikimedia\Parsoid\Core\ClientError; +use Wikimedia\Parsoid\Core\ResourceLimitExceededException; use Wikimedia\Rdbms\SelectQueryBuilder; require_once __DIR__ . '/Maintenance.php'; @@ -21,7 +23,7 @@ require_once __DIR__ . '/Maintenance.php'; */ class PrewarmParsoidParserCache extends Maintenance { private int $forceParse = 0; - private ParsoidOutputAccess $parsoidOutputAccess; + private ParserOutputAccess $parserOutputAccess; private PageLookup $pageLookup; private RevisionLookup $revisionLookup; private ParsoidSiteConfig $parsoidSiteConfig; @@ -54,9 +56,9 @@ class PrewarmParsoidParserCache extends Maintenance { return $this->revisionLookup; } - private function getParsoidOutputAccess(): ParsoidOutputAccess { - $this->parsoidOutputAccess = $this->getServiceContainer()->getParsoidOutputAccess(); - return $this->parsoidOutputAccess; + private function getParserOutputAccess(): ParserOutputAccess { + $this->parserOutputAccess = $this->getServiceContainer()->getParserOutputAccess(); + return $this->parserOutputAccess; } private function getParsoidSiteConfig(): ParsoidSiteConfig { @@ -75,15 +77,23 @@ class PrewarmParsoidParserCache extends Maintenance { } private function parse( - PageIdentity $page, + PageRecord $page, RevisionRecord $revision - ) { - return $this->parsoidOutputAccess->getParserOutput( - $page, - ParserOptions::newFromAnon(), - $revision, - $this->forceParse - ); + ): Status { + $popts = ParserOptions::newFromAnon(); + $popts->setUseParsoid(); + try { + return $this->getParserOutputAccess()->getParserOutput( + $page, + $popts, + $revision, + $this->forceParse + ); + } catch ( ClientError $e ) { + return Status::newFatal( 'parsoid-client-error', $e->getMessage() ); + } catch ( ResourceLimitExceededException $e ) { + return Status::newFatal( 'parsoid-resource-limit-exceeded', $e->getMessage() ); + } } /* |