Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 6
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
CirrusGenericJob
0.00% covered (danger)
0.00%
0 / 6
0.00% covered (danger)
0.00%
0 / 2
6
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
2
 getSearchConfig
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace CirrusSearch\Job;
4
5use CirrusSearch\SearchConfig;
6use MediaWiki\JobQueue\GenericParameterJob;
7use MediaWiki\JobQueue\Job;
8use MediaWiki\MediaWikiServices;
9
10/**
11 * CirrusSearch Job that is not bound to a Title
12 */
13abstract class CirrusGenericJob extends Job implements GenericParameterJob {
14    use JobTraits;
15
16    /**
17     * @var SearchConfig
18     */
19    protected $searchConfig;
20
21    /**
22     * @inheritDoc
23     */
24    public function __construct( array $params ) {
25        parent::__construct( self::buildJobName( static::class ), $params + [ 'cluster' => null ] );
26
27        // All CirrusSearch jobs are reasonably expensive.  Most involve parsing and it
28        // is ok to remove duplicate _unclaimed_ cirrus jobs.  Once a cirrus job is claimed
29        // it can't be deduplicated or else the search index will end up with out of date
30        // data.  Luckily, this is how the JobQueue implementations work.
31        $this->removeDuplicates = true;
32
33        $this->searchConfig = MediaWikiServices::getInstance()
34            ->getConfigFactory()
35            ->makeConfig( 'CirrusSearch' );
36    }
37
38    public function getSearchConfig(): SearchConfig {
39        return $this->searchConfig;
40    }
41}