diff options
Diffstat (limited to 'www/wiki/extensions/Translate/scripts/refresh-translatable-pages.php')
-rw-r--r-- | www/wiki/extensions/Translate/scripts/refresh-translatable-pages.php | 25 |
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; |