summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/Translate/scripts/refresh-translatable-pages.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/Translate/scripts/refresh-translatable-pages.php')
-rw-r--r--www/wiki/extensions/Translate/scripts/refresh-translatable-pages.php25
1 files changed, 16 insertions, 9 deletions
diff --git a/www/wiki/extensions/Translate/scripts/refresh-translatable-pages.php b/www/wiki/extensions/Translate/scripts/refresh-translatable-pages.php
index c92d853b..c5e0b106 100644
--- a/www/wiki/extensions/Translate/scripts/refresh-translatable-pages.php
+++ b/www/wiki/extensions/Translate/scripts/refresh-translatable-pages.php
@@ -3,7 +3,7 @@
* Script to ensure all translation pages are up to date.
*
* @author Niklas Laxström
- * @license GPL-2.0+
+ * @license GPL-2.0-or-later
* @file
*/
@@ -25,11 +25,13 @@ class RefreshTranslatablePages extends Maintenance {
parent::__construct();
$this->mDescription = 'Ensure all translation pages are up to date.';
$this->setBatchSize( 300 );
+ $this->addOption( 'jobqueue', 'Use JobQueue (asynchronous)' );
}
public function execute() {
$groups = MessageGroups::singleton()->getGroups();
$counter = 0;
+ $useJobQueue = $this->hasOption( 'jobqueue' );
/** @var MessageGroup $group */
foreach ( $groups as $group ) {
@@ -42,19 +44,24 @@ class RefreshTranslatablePages extends Maintenance {
wfWaitForSlaves();
}
- // Get all translation subpages and refresh each one of them
$page = TranslatablePage::newFromTitle( $group->getTitle() );
- $translationPages = $page->getTranslationPages();
-
- foreach ( $translationPages as $subpage ) {
- $job = TranslateRenderJob::newJob( $subpage );
- $job->run();
+ $jobs = TranslationsUpdateJob::getRenderJobs( $page );
+ if ( $useJobQueue ) {
+ JobQueueGroup::singleton()->push( $jobs );
+ } else {
+ foreach ( $jobs as $job ) {
+ $job->run();
+ }
}
}
- $this->output( "Refreshed $counter translatable pages.\n" );
+ if ( $useJobQueue ) {
+ $this->output( "Queued refresh for $counter translatable pages.\n" );
+ } else {
+ $this->output( "Refreshed $counter translatable pages.\n" );
+ }
}
}
-$maintClass = 'RefreshTranslatablePages';
+$maintClass = RefreshTranslatablePages::class;
require_once RUN_MAINTENANCE_IF_MAIN;