MediaWiki
master
|
Class to handle job queues stored in the DB. More...
Public Member Functions | |
doBatchPushInternal (IDatabase $dbw, array $jobs, $flags, $method) | |
This function should not be called outside of JobQueueDB. More... | |
getAllAcquiredJobs () | |
getAllQueuedJobs () | |
getCoalesceLocationInternal () | |
recycleAndDeleteStaleJobs () | |
Recycle or destroy any jobs that have been claimed for too long. More... | |
Public Member Functions inherited from JobQueue | |
ack (Job $job) | |
Acknowledge that a job was completed. More... | |
batchPush (array $jobs, $flags=0) | |
Push a batch of jobs into the queue. More... | |
deduplicateRootJob (IJobSpecification $job) | |
Register the "root job" of a given job into the queue for de-duplication. More... | |
delayedJobsEnabled () | |
delete () | |
Deleted all unclaimed and delayed jobs from the queue. More... | |
flushCaches () | |
Clear any process and persistent caches. More... | |
getAbandonedCount () | |
Get the number of acquired jobs that can no longer be attempted. More... | |
getAcquiredCount () | |
Get the number of acquired jobs (these are temporarily out of the queue). More... | |
getAllAbandonedJobs () | |
Get an iterator to traverse over all abandoned jobs in this queue. More... | |
getAllAcquiredJobs () | |
Get an iterator to traverse over all claimed jobs in this queue. More... | |
getAllDelayedJobs () | |
Get an iterator to traverse over all delayed jobs in this queue. More... | |
getAllQueuedJobs () | |
Get an iterator to traverse over all available jobs in this queue. More... | |
getCoalesceLocationInternal () | |
Do not use this function outside of JobQueue/JobQueueGroup. More... | |
getDelayedCount () | |
Get the number of delayed jobs (these are temporarily out of the queue). More... | |
getOrder () | |
getReadOnlyReason () | |
getSiblingQueueSizes (array $types) | |
Check the size of each of the given queues. More... | |
getSiblingQueuesWithJobs (array $types) | |
Check whether each of the given queues are empty. More... | |
getSize () | |
Get the number of available (unacquired, non-delayed) jobs in the queue. More... | |
getType () | |
getWiki () | |
isEmpty () | |
Quickly check if the queue has no available (unacquired, non-delayed) jobs. More... | |
pop () | |
Pop a job off of the queue. More... | |
push ($jobs, $flags=0) | |
Push one or more jobs into the queue. More... | |
waitForBackups () | |
Wait for any slaves or backup servers to catch up. More... | |
Static Public Member Functions | |
static | selectFields () |
Return the list of job fields that should be selected. More... | |
Static Public Member Functions inherited from JobQueue | |
static | factory (array $params) |
Get a job queue object of the specified type. More... | |
static | incrStats ($key, $type, $delta=1) |
Call wfIncrStats() for the queue overall and for the queue type. More... | |
Public Attributes | |
const | CACHE_TTL_SHORT = 30 |
const | MAX_AGE_PRUNE = 604800 |
const | MAX_JOB_RANDOM = 2147483647 |
const | MAX_OFFSET = 255 |
Public Attributes inherited from JobQueue | |
const | QOS_ATOMIC = 1 |
const | ROOTJOB_TTL = 2419200 |
Protected Member Functions | |
__construct (array $params) | |
Additional parameters include: More... | |
claimOldest ($uuid) | |
Reserve a row with a single UPDATE without holding row locks over RTTs... More... | |
claimRandom ($uuid, $rand, $gte) | |
Reserve a row with a single UPDATE without holding row locks over RTTs... More... | |
doAck (Job $job) | |
doBatchPush (array $jobs, $flags) | |
doDeduplicateRootJob (IJobSpecification $job) | |
doDelete () | |
doFlushCaches () | |
doGetAbandonedCount () | |
doGetAcquiredCount () | |
doGetSiblingQueueSizes (array $types) | |
doGetSiblingQueuesWithJobs (array $types) | |
doGetSize () | |
doIsEmpty () | |
doPop () | |
doWaitForBackups () | |
getDB ($index) | |
getJobIterator (array $conds) | |
getMasterDB () | |
getSlaveDB () | |
insertFields (IJobSpecification $job) | |
optimalOrder () | |
supportedOrders () | |
throwDBException (DBError $e) | |
Protected Member Functions inherited from JobQueue | |
__construct (array $params) | |
assertNotReadOnly () | |
doAck (Job $job) | |
doBatchPush (array $jobs, $flags) | |
doDeduplicateRootJob (IJobSpecification $job) | |
doDelete () | |
doFlushCaches () | |
doGetAbandonedCount () | |
doGetAcquiredCount () | |
doGetDelayedCount () | |
doGetSiblingQueueSizes (array $types) | |
doGetSiblingQueuesWithJobs (array $types) | |
doGetSize () | |
doIsEmpty () | |
doIsRootJobOldDuplicate (Job $job) | |
doPop () | |
doWaitForBackups () | |
getRootJobCacheKey ($signature) | |
isRootJobOldDuplicate (Job $job) | |
Check if the "root" job of a given job has been superseded by a newer one. More... | |
optimalOrder () | |
Get the default queue order to use if configuration does not specify one. More... | |
supportedOrders () | |
Get the allowed queue orders for configuration validation. More... | |
supportsDelayedJobs () | |
Find out if delayed jobs are supported for configuration validation. More... | |
Static Protected Member Functions | |
static | extractBlob ($blob) |
static | makeBlob ($params) |
Protected Attributes | |
WANObjectCache | $cache |
bool string | $cluster = false |
Name of an external DB cluster. More... | |
Protected Attributes inherited from JobQueue | |
JobQueueAggregator | $aggr |
int | $claimTTL |
Time to live in seconds. More... | |
BagOStuff | $dupCache |
int | $maxTries |
Maximum number of times to try a job. More... | |
string | $order |
Job priority for pop() More... | |
string bool | $readOnlyReason |
Read only rationale (or false if r/w) More... | |
string | $type |
Job type. More... | |
string | $wiki |
Wiki ID. More... | |
Private Member Functions | |
getCacheKey ($property) | |
Class to handle job queues stored in the DB.
Definition at line 30 of file JobQueueDB.php.
|
protected |
Additional parameters include:
array | $params |
Definition at line 50 of file JobQueueDB.php.
References cache, and ObjectCache\getMainWANInstance().
|
protected |
Reserve a row with a single UPDATE without holding row locks over RTTs...
string | $uuid | 32 char hex string |
Definition at line 396 of file JobQueueDB.php.
References getMasterDB(), type, and wfDebug().
Referenced by doPop().
|
protected |
Reserve a row with a single UPDATE without holding row locks over RTTs...
string | $uuid | 32 char hex string |
int | $rand | Random unsigned integer (31 bits) |
bool | $gte | Search for job_random >= $random (otherwise job_random <= $random) |
Definition at line 319 of file JobQueueDB.php.
References $dir, JobQueue\$type, cache, getCacheKey(), getMasterDB(), and type.
Referenced by doPop().
|
protected |
Job | $job |
MWException |
Definition at line 456 of file JobQueueDB.php.
References $e, DBO_TRX, getMasterDB(), JobQueue\incrStats(), throwDBException(), type, and use.
|
protected |
IJobSpecification[] | $jobs | |
int | $flags |
DBError|Exception |
Definition at line 181 of file JobQueueDB.php.
References $flags, doBatchPushInternal(), getMasterDB(), and use.
This function should not be called outside of JobQueueDB.
IDatabase | $dbw | |
IJobSpecification[] | $jobs | |
int | $flags | |
string | $method |
DBError |
Definition at line 202 of file JobQueueDB.php.
References $e, $flags, $job, $res, as, IDatabase\endAtomic(), JobQueue\incrStats(), IDatabase\insert(), insertFields(), IDatabase\rollback(), IDatabase\select(), IDatabase\startAtomic(), type, and wfDebug().
Referenced by doBatchPush().
|
protected |
IJobSpecification | $job |
MWException |
Definition at line 486 of file JobQueueDB.php.
References $cache, JobQueue\$dupCache, $params, $timestamp, WANObjectCache\get(), getMasterDB(), IJobSpecification\getParams(), JobQueue\getRootJobCacheKey(), JobQueue\ROOTJOB_TTL, WANObjectCache\set(), and use.
|
protected |
Definition at line 518 of file JobQueueDB.php.
References $e, getMasterDB(), throwDBException(), and type.
|
protected |
Definition at line 540 of file JobQueueDB.php.
References JobQueue\$type, as, cache, and getCacheKey().
|
protected |
MWException |
Definition at line 143 of file JobQueueDB.php.
References $count, $dbr, $e, cache, getCacheKey(), getSlaveDB(), and throwDBException().
|
protected |
Definition at line 112 of file JobQueueDB.php.
References $count, $dbr, $e, cache, getCacheKey(), getSlaveDB(), and throwDBException().
|
protected |
Definition at line 611 of file JobQueueDB.php.
References $dbr, $res, as, and getSlaveDB().
|
protected |
Definition at line 594 of file JobQueueDB.php.
References $dbr, $res, as, and getSlaveDB().
|
protected |
Definition at line 86 of file JobQueueDB.php.
References $dbr, $e, cache, getCacheKey(), getSlaveDB(), and throwDBException().
|
protected |
Definition at line 69 of file JobQueueDB.php.
References $dbr, $e, getSlaveDB(), throwDBException(), and type.
|
protected |
Definition at line 264 of file JobQueueDB.php.
References $e, $job, $title, claimOldest(), claimRandom(), DBO_TRX, Job\factory(), getMasterDB(), JobQueue\incrStats(), Title\makeTitle(), order, recycleAndDeleteStaleJobs(), throwDBException(), type, use, and wfRandomString().
|
protected |
Definition at line 533 of file JobQueueDB.php.
References wfWaitForSlaves(), and wiki.
|
staticprotected |
string | $blob |
Definition at line 797 of file JobQueueDB.php.
References $blob, and unserialize().
JobQueueDB::getAllAcquiredJobs | ( | ) |
Definition at line 558 of file JobQueueDB.php.
References getJobIterator(), and JobQueue\getType().
JobQueueDB::getAllQueuedJobs | ( | ) |
Definition at line 550 of file JobQueueDB.php.
References getJobIterator(), and JobQueue\getType().
|
private |
string | $property |
Definition at line 774 of file JobQueueDB.php.
References $cluster, $property, list, type, wfForeignMemcKey(), wfSplitWikiID(), and wiki.
Referenced by claimRandom(), doFlushCaches(), doGetAbandonedCount(), doGetAcquiredCount(), and doGetSize().
JobQueueDB::getCoalesceLocationInternal | ( | ) |
Definition at line 588 of file JobQueueDB.php.
|
protected |
int | $index | (DB_SLAVE/DB_MASTER) |
Definition at line 762 of file JobQueueDB.php.
References false, wfGetLB(), wfGetLBFactory(), and wiki.
Referenced by getMasterDB(), and getSlaveDB().
|
protected |
array | $conds | Query conditions |
Definition at line 566 of file JobQueueDB.php.
References $dbr, $e, $job, Job\factory(), getSlaveDB(), Title\makeTitle(), throwDBException(), and unserialize().
Referenced by getAllAcquiredJobs(), and getAllQueuedJobs().
|
protected |
JobQueueConnectionError |
Definition at line 750 of file JobQueueDB.php.
References $e, DB_MASTER, and getDB().
Referenced by claimOldest(), claimRandom(), doAck(), doBatchPush(), doDeduplicateRootJob(), doDelete(), doPop(), insertFields(), and recycleAndDeleteStaleJobs().
|
protected |
JobQueueConnectionError |
Definition at line 738 of file JobQueueDB.php.
References $e, DB_SLAVE, and getDB().
Referenced by doGetAbandonedCount(), doGetAcquiredCount(), doGetSiblingQueueSizes(), doGetSiblingQueuesWithJobs(), doGetSize(), doIsEmpty(), and getJobIterator().
|
protected |
IJobSpecification | $job |
Definition at line 714 of file JobQueueDB.php.
References IJobSpecification\getDeduplicationInfo(), getMasterDB(), IJobSpecification\getParams(), IJobSpecification\getTitle(), IJobSpecification\getType(), and serialize().
Referenced by doBatchPushInternal().
|
staticprotected |
array | bool | $params |
Definition at line 785 of file JobQueueDB.php.
References $params, and serialize().
|
protected |
Definition at line 61 of file JobQueueDB.php.
JobQueueDB::recycleAndDeleteStaleJobs | ( | ) |
Recycle or destroy any jobs that have been claimed for too long.
Definition at line 629 of file JobQueueDB.php.
References $count, $e, $res, JobQueue\$type, getMasterDB(), JobQueue\incrStats(), throwDBException(), type, and wiki.
Referenced by doPop().
|
static |
Return the list of job fields that should be selected.
Definition at line 818 of file JobQueueDB.php.
|
protected |
Definition at line 57 of file JobQueueDB.php.
|
protected |
DBError | $e |
JobQueueError |
Definition at line 809 of file JobQueueDB.php.
Referenced by doAck(), doDelete(), doGetAbandonedCount(), doGetAcquiredCount(), doGetSize(), doIsEmpty(), doPop(), getJobIterator(), and recycleAndDeleteStaleJobs().
|
protected |
Definition at line 37 of file JobQueueDB.php.
Referenced by doDeduplicateRootJob().
Name of an external DB cluster.
False if not set
Definition at line 40 of file JobQueueDB.php.
Referenced by getCacheKey().
const JobQueueDB::CACHE_TTL_SHORT = 30 |
Definition at line 31 of file JobQueueDB.php.
const JobQueueDB::MAX_AGE_PRUNE = 604800 |
Definition at line 32 of file JobQueueDB.php.
const JobQueueDB::MAX_JOB_RANDOM = 2147483647 |
Definition at line 33 of file JobQueueDB.php.
const JobQueueDB::MAX_OFFSET = 255 |
Definition at line 34 of file JobQueueDB.php.