diff options
Diffstat (limited to 'www/wiki/extensions/Translate/utils/MessageIndexRebuildJob.php')
-rw-r--r-- | www/wiki/extensions/Translate/utils/MessageIndexRebuildJob.php | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/www/wiki/extensions/Translate/utils/MessageIndexRebuildJob.php b/www/wiki/extensions/Translate/utils/MessageIndexRebuildJob.php new file mode 100644 index 00000000..2b66205f --- /dev/null +++ b/www/wiki/extensions/Translate/utils/MessageIndexRebuildJob.php @@ -0,0 +1,55 @@ +<?php +/** + * Contains class with job for rebuilding message index. + * + * @file + * @author Niklas Laxström + * @copyright Copyright © 2011-2013, Niklas Laxström + * @license GPL-2.0-or-later + */ + +/** + * Job for rebuilding message index. + * + * @ingroup JobQueue + */ +class MessageIndexRebuildJob extends Job { + + /** + * @return self + */ + public static function newJob() { + $job = new self( Title::newMainPage() ); + + return $job; + } + + /** + * @param Title $title + * @param array $params + */ + public function __construct( $title, $params = [] ) { + parent::__construct( __CLASS__, $title, $params ); + } + + public function run() { + MessageIndex::singleton()->rebuild(); + + return true; + } + + /** + * Usually this job is fast enough to be executed immediately, + * in which case having it go through jobqueue only causes problems + * in installations with errant job queue processing. + * @override + */ + public function insertIntoJobQueue() { + global $wgTranslateDelayedMessageIndexRebuild; + if ( $wgTranslateDelayedMessageIndexRebuild ) { + JobQueueGroup::singleton()->push( $this ); + } else { + $this->run(); + } + } +} |