Ori.livneh has submitted this change and it was merged.

Change subject: Add ParserOutputStashForEdit hook for extension cache warming
......................................................................


Add ParserOutputStashForEdit hook for extension cache warming

This can pre-cache slow queries by extensions that happen on
edit submission.

Bug: T116557
Change-Id: I803f69013f68e80a53dd3c466bddff3ebe2b659b
---
M docs/hooks.txt
M includes/api/ApiStashEdit.php
2 files changed, 9 insertions(+), 0 deletions(-)

Approvals:
  Ori.livneh: Verified; Looks good to me, approved
  jenkins-bot: Verified



diff --git a/docs/hooks.txt b/docs/hooks.txt
index 2b5e1e0..a252438 100644
--- a/docs/hooks.txt
+++ b/docs/hooks.txt
@@ -2346,6 +2346,11 @@
 that tests continue to run properly.
 &$tables: array of table names
 
+'ParserOutputStashForEdit': Called when an edit stash parse finishes, before 
the output is cached.
+$page: the WikiPage of the candidate edit
+$content: the Content object of the candidate edit
+$output: the ParserOutput result of the candidate edit
+
 'PasswordPoliciesForUser': Alter the effective password policy for a user.
 $user: User object whose policy you are modifying
 &$effectivePolicy: Array of policy statements that apply to this user
diff --git a/includes/api/ApiStashEdit.php b/includes/api/ApiStashEdit.php
index 8822750..00675f4 100644
--- a/includes/api/ApiStashEdit.php
+++ b/includes/api/ApiStashEdit.php
@@ -141,6 +141,9 @@
                if ( $editInfo && $editInfo->output ) {
                        $key = self::getStashKey( $page->getTitle(), $content, 
$user );
 
+                       // Let extensions add ParserOutput metadata or warm 
other caches
+                       Hooks::run( 'ParserOutputStashForEdit', array( $page, 
$content, $editInfo->output ) );
+
                        list( $stashInfo, $ttl ) = self::buildStashValue(
                                $editInfo->pstContent, $editInfo->output, 
$editInfo->timestamp
                        );
@@ -148,6 +151,7 @@
                        if ( $stashInfo ) {
                                $ok = $cache->set( $key, $stashInfo, $ttl );
                                if ( $ok ) {
+
                                        $logger->debug( "Cached parser output 
for key '$key'." );
                                        return self::ERROR_NONE;
                                } else {

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I803f69013f68e80a53dd3c466bddff3ebe2b659b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: wmf/1.27.0-wmf.11
Gerrit-Owner: Ori.livneh <[email protected]>
Gerrit-Reviewer: Aaron Schulz <[email protected]>
Gerrit-Reviewer: Anomie <[email protected]>
Gerrit-Reviewer: Ori.livneh <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to