MediaWiki REL1_30
|
Class to handle enqueueing of background jobs. More...
Public Member Functions | |
__destruct () | |
ack (Job $job) | |
Acknowledge that a job was completed. | |
deduplicateRootJob (Job $job) | |
Register the "root job" of a given job into the queue for de-duplication. | |
get ( $type) | |
Get the job queue object for a given queue type. | |
getDefaultQueueTypes () | |
Get the list of default queue types. | |
getQueueSizes () | |
Get the size of the queus for a list of job types. | |
getQueuesWithJobs () | |
Get the list of job types that have non-empty queues. | |
getQueueTypes () | |
Get the list of queue types. | |
lazyPush ( $jobs) | |
Buffer jobs for insertion via push() or call it now if in CLI mode. | |
pop ( $qtype=self::TYPE_DEFAULT, $flags=0, array $blacklist=[]) | |
Pop a job off one of the job queues. | |
push ( $jobs) | |
Insert jobs into the respective queues of which they belong. | |
queuesHaveJobs ( $type=self::TYPE_ANY) | |
Check if there are any queues with jobs (this is cached) | |
waitForBackups () | |
Wait for any replica DBs or backup queue servers to catch up. | |
Static Public Member Functions | |
static | destroySingletons () |
Destroy the singleton instances. | |
static | pushLazyJobs () |
Push all jobs buffered via lazyPush() into their respective queues. | |
static | singleton ( $wiki=false) |
Public Attributes | |
const | CACHE_VERSION = 1 |
const | PROC_CACHE_TTL = 15 |
const | TYPE_ANY = 2 |
const | TYPE_DEFAULT = 1 |
const | USE_CACHE = 1 |
Protected Member Functions | |
__construct ( $wiki, $readOnlyReason) | |
getCoalescedQueues () | |
Protected Attributes | |
Job[] | $bufferedJobs = [] |
ProcessCacheLRU | $cache |
array | $coalescedQueues |
Map of (bucket => (queue => JobQueue, types => list of types) | |
bool | $invalidWiki = false |
Whether the wiki is not recognized in configuration. | |
string bool | $readOnlyReason |
Read only rationale (or false if r/w) | |
string | $wiki |
Wiki ID. | |
Static Protected Attributes | |
static JobQueueGroup[] | $instances = [] |
Private Member Functions | |
assertValidJobs (array $jobs) | |
getCachedConfigVar ( $name) | |
Class to handle enqueueing of background jobs.
Definition at line 29 of file JobQueueGroup.php.
|
protected |
string | $wiki | Wiki ID |
string | bool | $readOnlyReason | Read-only reason or false |
Definition at line 62 of file JobQueueGroup.php.
References $readOnlyReason, $wiki, and cache.
JobQueueGroup::__destruct | ( | ) |
Definition at line 468 of file JobQueueGroup.php.
References $type.
JobQueueGroup::ack | ( | Job | $job | ) |
Acknowledge that a job was completed.
Job | $job |
Definition at line 281 of file JobQueueGroup.php.
References $job, ack(), and Job\getType().
Referenced by ack().
|
private |
array | $jobs |
InvalidArgumentException |
Definition at line 460 of file JobQueueGroup.php.
References $job.
Referenced by lazyPush(), and push().
JobQueueGroup::deduplicateRootJob | ( | Job | $job | ) |
Register the "root job" of a given job into the queue for de-duplication.
This should only be called right after all the new jobs have been inserted.
Job | $job |
Definition at line 292 of file JobQueueGroup.php.
References $job, deduplicateRootJob(), and Job\getType().
Referenced by deduplicateRootJob().
|
static |
Destroy the singleton instances.
Definition at line 94 of file JobQueueGroup.php.
Referenced by MediaWikiTestCase\doLightweightServiceReset(), ForkController\prepareEnvironment(), CategoryMembershipChangeJobTest\runJobs(), WikiPageTest\testDoDeleteArticle(), WikiPageTest\testDoDeleteUpdates(), and TemplateCategoriesTest\testTemplateCategories().
JobQueueGroup::get | ( | $type | ) |
Get the job queue object for a given queue type.
string | $type |
Definition at line 104 of file JobQueueGroup.php.
References $readOnlyReason, $type, $wgJobTypeConf, $wiki, JobQueue\factory(), and JobQueueAggregator\singleton().
|
private |
string | $name |
Definition at line 434 of file JobQueueGroup.php.
References $cache, $GLOBALS, $name, $value, $wgConf, $wiki, and wfWikiID().
Referenced by getQueueTypes().
|
protected |
Definition at line 403 of file JobQueueGroup.php.
References $coalescedQueues, $queue, $type, $wgJobTypeConf, JobQueue\factory(), and getQueueTypes().
Referenced by getQueueSizes(), and getQueuesWithJobs().
JobQueueGroup::getDefaultQueueTypes | ( | ) |
Get the list of default queue types.
Definition at line 326 of file JobQueueGroup.php.
References $wgJobTypesExcludedFromDefaultQueue, and getQueueTypes().
Referenced by pop(), and queuesHaveJobs().
JobQueueGroup::getQueueSizes | ( | ) |
Get the size of the queus for a list of job types.
Definition at line 384 of file JobQueueGroup.php.
References $type, getCoalescedQueues(), and getQueueTypes().
JobQueueGroup::getQueuesWithJobs | ( | ) |
Get the list of job types that have non-empty queues.
Definition at line 361 of file JobQueueGroup.php.
References $type, getCoalescedQueues(), and getQueueTypes().
Referenced by pop(), and queuesHaveJobs().
JobQueueGroup::getQueueTypes | ( | ) |
Get the list of queue types.
Definition at line 317 of file JobQueueGroup.php.
References getCachedConfigVar().
Referenced by getCoalescedQueues(), getDefaultQueueTypes(), getQueueSizes(), and getQueuesWithJobs().
JobQueueGroup::lazyPush | ( | $jobs | ) |
Buffer jobs for insertion via push() or call it now if in CLI mode.
Note that pushLazyJobs() is registered as a deferred update just before DeferredUpdates::doUpdates() in MediaWiki and JobRunner classes in order to be executed as the very last deferred update (T100085, T154425).
IJobSpecification | IJobSpecification[] | $jobs | A single Job or a list of Jobs |
Definition at line 190 of file JobQueueGroup.php.
References assertValidJobs(), and push().
JobQueueGroup::pop | ( | $qtype = self::TYPE_DEFAULT, | |
$flags = 0, | |||
array | $blacklist = [] ) |
Pop a job off one of the job queues.
This pops a job off a queue as specified by $wgJobTypeConf and updates the aggregate job queue information cache as needed.
int | string | $qtype | JobQueueGroup::TYPE_* constant or job type string |
int | $flags | Bitfield of JobQueueGroup::USE_* constants |
array | $blacklist | List of job types to ignore |
Definition at line 238 of file JobQueueGroup.php.
References $flags, $job, $type, cache, getDefaultQueueTypes(), getQueuesWithJobs(), and pop().
Referenced by pop().
JobQueueGroup::push | ( | $jobs | ) |
Insert jobs into the respective queues of which they belong.
This inserts the jobs into the queue specified by $wgJobTypeConf and updates the aggregate job queue information cache as needed.
IJobSpecification | IJobSpecification[] | $jobs | A single Job or a list of Jobs |
InvalidArgumentException |
Definition at line 131 of file JobQueueGroup.php.
References $cache, $e, $job, $type, $wgJobTypesExcludedFromDefaultQueue, assertValidJobs(), cache, push(), and ProcessCacheLRU\set().
Referenced by lazyPush(), and push().
|
static |
Push all jobs buffered via lazyPush() into their respective queues.
Definition at line 215 of file JobQueueGroup.php.
References $e.
JobQueueGroup::queuesHaveJobs | ( | $type = self::TYPE_ANY | ) |
Check if there are any queues with jobs (this is cached)
int | $type | JobQueueGroup::TYPE_* constant |
Definition at line 339 of file JobQueueGroup.php.
References $cache, $type, $value, ProcessCacheLRU\get(), getDefaultQueueTypes(), and getQueuesWithJobs().
|
static |
bool | string | $wiki | Wiki ID |
Definition at line 72 of file JobQueueGroup.php.
References $wgLocalDatabases, $wiki, false, wfConfiguredReadOnlyReason(), and wfWikiID().
Referenced by MediaWikiTestCase\addCoreDBData(), Job\batchInsert(), WikiPage\doEditUpdates(), CdnCacheUpdate\doUpdate(), HTMLCacheUpdate\doUpdate(), DeferredUpdates\enqueueUpdates(), CopyJobQueue\execute(), ManageJobs\execute(), ShowJobs\execute(), JobQueueAggregator\findPendingWikiQueues(), DoubleRedirectJob\fixRedirects(), ApiUpload\getChunkResult(), ApiMain\getMaxLag(), Job\insert(), CreatePdfThumbnailsJob\insertJobs(), SiteStats\jobs(), EmailNotification\notifyOnPageChange(), ApiUpload\performUpload(), LocalFile\prerenderThumbnails(), FixDoubleRedirects\queueJobs(), LinksUpdate\queueRecursiveJobs(), LinksUpdate\queueRecursiveJobsForTable(), RenameuserSQL\rename(), EnqueueJob\run(), HTMLCacheUpdateJob\run(), NullJob\run(), RefreshLinksJob\run(), JobRunner\run(), LinksUpdateTest\runAllRelatedJobs(), DeferredUpdates\runUpdate(), RecentChange\save(), MediaWikiTestCase\teardownTestDB(), UploadFromUrlTest\testClearQueue(), SiteStatsTest\testJobsCountGetCached(), UploadFromUrlTest\testSyncDownload(), MediaWiki\triggerAsyncJobs(), and WikiPage\triggerOpportunisticLinksUpdate().
JobQueueGroup::waitForBackups | ( | ) |
Wait for any replica DBs or backup queue servers to catch up.
This does nothing for certain queue classes.
Definition at line 303 of file JobQueueGroup.php.
References $type, $wgJobTypeConf, and waitForBackups().
Referenced by waitForBackups().
|
protected |
Definition at line 47 of file JobQueueGroup.php.
|
protected |
Definition at line 34 of file JobQueueGroup.php.
Referenced by getCachedConfigVar(), push(), and queuesHaveJobs().
|
protected |
Map of (bucket => (queue => JobQueue, types => list of types)
Definition at line 44 of file JobQueueGroup.php.
Referenced by getCoalescedQueues().
|
staticprotected |
Definition at line 31 of file JobQueueGroup.php.
|
protected |
Whether the wiki is not recognized in configuration.
Definition at line 41 of file JobQueueGroup.php.
|
protected |
Read only rationale (or false if r/w)
Definition at line 39 of file JobQueueGroup.php.
Referenced by __construct(), and get().
|
protected |
Wiki ID.
Definition at line 37 of file JobQueueGroup.php.
Referenced by __construct(), get(), getCachedConfigVar(), and singleton().
const JobQueueGroup::CACHE_VERSION = 1 |
Definition at line 56 of file JobQueueGroup.php.
const JobQueueGroup::PROC_CACHE_TTL = 15 |
Definition at line 54 of file JobQueueGroup.php.
const JobQueueGroup::TYPE_ANY = 2 |
Definition at line 50 of file JobQueueGroup.php.
const JobQueueGroup::TYPE_DEFAULT = 1 |
Definition at line 49 of file JobQueueGroup.php.
Referenced by JobRunner\run(), and MediaWiki\triggerAsyncJobs().
const JobQueueGroup::USE_CACHE = 1 |
Definition at line 52 of file JobQueueGroup.php.
Referenced by JobRunner\run().