MediaWiki  1.23.2
JobQueueDB Class Reference

Class to handle job queues stored in the DB. More...

Inheritance diagram for JobQueueDB:
Collaboration diagram for JobQueueDB:

Public Member Functions

 doBatchPushInternal (IDatabase $dbw, array $jobs, $flags, $method)
 This function should not be called outside of JobQueueDB. More...
 
 getAllQueuedJobs ()
 
 getCoalesceLocationInternal ()
 Do not use this function outside of JobQueue/JobQueueGroup. More...
 
 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 (Job $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...
 
 getAllDelayedJobs ()
 Get an iterator to traverse over all delayed jobs in this queue. More...
 
 getDelayedCount ()
 Get the number of delayed jobs (these are temporarily out of the queue). More...
 
 getOrder ()
 
 getPeriodicTasks ()
 Return a map of task names to task definition maps. More...
 
 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...
 
 setTestingPrefix ( $key)
 Namespace the queue with a key to isolate it for testing. 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, $wiki=null)
 Call wfIncrStats() for the queue overall and for the queue type. More...
 

Public Attributes

const CACHE_TTL_LONG = 300
 
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 (Job $job)
 
 doDelete ()
 
 doFlushCaches ()
 
 doGetAbandonedCount ()
 
 doGetAcquiredCount ()
 
 doGetPeriodicTasks ()
 
 doGetSiblingQueueSizes (array $types)
 
 doGetSiblingQueuesWithJobs (array $types)
 
 doGetSize ()
 
 doIsEmpty ()
 
 doPop ()
 
 doWaitForBackups ()
 
 getDB ( $index)
 
 getMasterDB ()
 
 getSlaveDB ()
 
 insertFields (IJobSpecification $job)
 
 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...
 
 throwDBException (DBError $e)
 
- Protected Member Functions inherited from JobQueue
 doGetDelayedCount ()
 
 doIsRootJobOldDuplicate (Job $job)
 
 getRootJobCacheKey ( $signature)
 
 isRootJobOldDuplicate (Job $job)
 Check if the "root" job of a given job has been superseded by a newer one. 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

BagOStuff $cache
 
bool string $cluster = false
 Name of an external DB cluster. More...
 
- Protected Attributes inherited from JobQueue
bool $checkDelay
 Allow delayed jobs *. More...
 
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 $type
 Job type *. More...
 
string $wiki
 Wiki ID *. More...
 

Private Member Functions

 getCacheKey ( $property)
 

Detailed Description

Class to handle job queues stored in the DB.

Since
1.21

Definition at line 30 of file JobQueueDB.php.

Constructor & Destructor Documentation

◆ __construct()

JobQueueDB::__construct ( array  $params)
protected

Additional parameters include:

  • cluster : The name of an external cluster registered via LBFactory. If not specified, the primary DB cluster for the wiki will be used. This can be overridden with a custom cluster so that DB handles will be retrieved via LBFactory::getExternalLB() and getConnection().
    Parameters
    array$params

Reimplemented from JobQueue.

Definition at line 49 of file JobQueueDB.php.

References $params, $wgMemc, cache, and global.

Member Function Documentation

◆ claimOldest()

JobQueueDB::claimOldest (   $uuid)
protected

Reserve a row with a single UPDATE without holding row locks over RTTs...

Parameters
string$uuid32 char hex string
Returns
stdClass|bool Row|false

Definition at line 420 of file JobQueueDB.php.

References array(), getMasterDB(), type, and wfDebug().

Referenced by doPop().

◆ claimRandom()

JobQueueDB::claimRandom (   $uuid,
  $rand,
  $gte 
)
protected

Reserve a row with a single UPDATE without holding row locks over RTTs...

Parameters
string$uuid32 char hex string
$randinteger Random unsigned integer (31 bits)
bool$gteSearch for job_random >= $random (otherwise job_random <= $random)
Returns
stdClass|bool Row|false

Definition at line 343 of file JobQueueDB.php.

References $dir, array(), cache, getCacheKey(), getMasterDB(), and type.

Referenced by doPop().

◆ doAck()

JobQueueDB::doAck ( Job  $job)
protected
See also
JobQueue::doAck()
Parameters
Job$job
Exceptions
MWException
Returns
Job|bool

Reimplemented from JobQueue.

Definition at line 481 of file JobQueueDB.php.

References $e, $job, array(), DBO_TRX, getMasterDB(), throwDBException(), and type.

◆ doBatchPush()

JobQueueDB::doBatchPush ( array  $jobs,
  $flags 
)
protected
See also
JobQueue::doBatchPush()
Parameters
array$jobs
$flags
Exceptions
DBError|Exception
Returns
bool

Reimplemented from JobQueue.

Definition at line 194 of file JobQueueDB.php.

References $flags, and getMasterDB().

◆ doBatchPushInternal()

JobQueueDB::doBatchPushInternal ( IDatabase  $dbw,
array  $jobs,
  $flags,
  $method 
)

This function should not be called outside of JobQueueDB.

Parameters
IDatabase$dbw
array$jobs
int$flags
string$method
Exceptions
DBError
Returns
bool

Definition at line 218 of file JobQueueDB.php.

References $e, $flags, $job, $res, array(), as, cache, CACHE_TTL_LONG, getCacheKey(), JobQueue\incrStats(), insertFields(), type, wfDebug(), and wiki.

◆ doDeduplicateRootJob()

JobQueueDB::doDeduplicateRootJob ( Job  $job)
protected

◆ doDelete()

JobQueueDB::doDelete ( )
protected
See also
JobQueue::doDelete()
Returns
bool

Reimplemented from JobQueue.

Definition at line 543 of file JobQueueDB.php.

References $e, array(), getMasterDB(), throwDBException(), and type.

◆ doFlushCaches()

JobQueueDB::doFlushCaches ( )
protected
Returns
void

Reimplemented from JobQueue.

Definition at line 577 of file JobQueueDB.php.

References JobQueue\$type, array(), as, cache, and getCacheKey().

◆ doGetAbandonedCount()

JobQueueDB::doGetAbandonedCount ( )
protected
See also
JobQueue::doGetAbandonedCount()
Returns
int
Exceptions
MWException

Reimplemented from JobQueue.

Definition at line 155 of file JobQueueDB.php.

References $count, $dbr, $e, $wgMemc, array(), getCacheKey(), getSlaveDB(), global, throwDBException(), and type.

◆ doGetAcquiredCount()

JobQueueDB::doGetAcquiredCount ( )
protected
See also
JobQueue::doGetAcquiredCount()
Returns
int

Reimplemented from JobQueue.

Definition at line 124 of file JobQueueDB.php.

References $count, $dbr, $e, array(), cache, getCacheKey(), getSlaveDB(), throwDBException(), and type.

◆ doGetPeriodicTasks()

JobQueueDB::doGetPeriodicTasks ( )
protected
Returns
array

Reimplemented from JobQueue.

Definition at line 565 of file JobQueueDB.php.

References array().

◆ doGetSiblingQueueSizes()

JobQueueDB::doGetSiblingQueueSizes ( array  $types)
protected
See also
JobQueue::getSiblingQueuesSize()
Parameters
array$typesList of queues types
Returns
array|null (list of queue types) or null if unsupported

Reimplemented from JobQueue.

Definition at line 627 of file JobQueueDB.php.

References $dbr, $res, array(), as, and getSlaveDB().

◆ doGetSiblingQueuesWithJobs()

JobQueueDB::doGetSiblingQueuesWithJobs ( array  $types)
protected
See also
JobQueue::getSiblingQueuesWithJobs()
Parameters
array$typesList of queues types
Returns
array|null (list of queue types) or null if unsupported

Reimplemented from JobQueue.

Definition at line 614 of file JobQueueDB.php.

References $dbr, $res, array(), as, and getSlaveDB().

◆ doGetSize()

JobQueueDB::doGetSize ( )
protected
See also
JobQueue::doGetSize()
Returns
int

Reimplemented from JobQueue.

Definition at line 98 of file JobQueueDB.php.

References $dbr, $e, $size, array(), cache, getCacheKey(), getSlaveDB(), throwDBException(), and type.

◆ doIsEmpty()

JobQueueDB::doIsEmpty ( )
protected
See also
JobQueue::doIsEmpty()
Returns
bool

Reimplemented from JobQueue.

Definition at line 71 of file JobQueueDB.php.

References $dbr, $e, array(), cache, getCacheKey(), getSlaveDB(), throwDBException(), and type.

◆ doPop()

JobQueueDB::doPop ( )
protected

◆ doWaitForBackups()

JobQueueDB::doWaitForBackups ( )
protected
See also
JobQueue::doWaitForBackups()
Returns
void

Reimplemented from JobQueue.

Definition at line 558 of file JobQueueDB.php.

References wfWaitForSlaves().

◆ extractBlob()

static JobQueueDB::extractBlob (   $blob)
staticprotected
Parameters
$blob
Returns
bool|mixed

Definition at line 813 of file JobQueueDB.php.

References $blob.

◆ getAllQueuedJobs()

JobQueueDB::getAllQueuedJobs ( )
See also
JobQueue::getAllQueuedJobs()
Returns
Iterator

Reimplemented from JobQueue.

Definition at line 587 of file JobQueueDB.php.

References $dbr, $e, $job, array(), Job\factory(), getSlaveDB(), JobQueue\getType(), Title\makeTitle(), and throwDBException().

◆ getCacheKey()

JobQueueDB::getCacheKey (   $property)
private

◆ getCoalesceLocationInternal()

JobQueueDB::getCoalesceLocationInternal ( )

Do not use this function outside of JobQueue/JobQueueGroup.

Returns
string
Since
1.22

Reimplemented from JobQueue.

Definition at line 608 of file JobQueueDB.php.

◆ getDB()

JobQueueDB::getDB (   $index)
protected
Parameters
$indexinteger (DB_SLAVE/DB_MASTER)
Returns
DBConnRef

Definition at line 778 of file JobQueueDB.php.

References $lb, array(), false, wfGetLB(), wfGetLBFactory(), and wiki.

Referenced by getMasterDB(), and getSlaveDB().

◆ getMasterDB()

JobQueueDB::getMasterDB ( )
protected

◆ getSlaveDB()

JobQueueDB::getSlaveDB ( )
protected

◆ insertFields()

JobQueueDB::insertFields ( IJobSpecification  $job)
protected
Parameters
IJobSpecification$job
Returns
array

Definition at line 730 of file JobQueueDB.php.

References $job, array(), getMasterDB(), IJobSpecification\getType(), makeBlob(), and wfBaseConvert().

Referenced by doBatchPushInternal().

◆ makeBlob()

static JobQueueDB::makeBlob (   $params)
staticprotected
Parameters
$params
Returns
string

Definition at line 801 of file JobQueueDB.php.

References $params.

Referenced by insertFields().

◆ optimalOrder()

JobQueueDB::optimalOrder ( )
protected

Get the default queue order to use if configuration does not specify one.

Returns
string One of (random, timestamp, fifo, undefined)

Reimplemented from JobQueue.

Definition at line 63 of file JobQueueDB.php.

◆ recycleAndDeleteStaleJobs()

JobQueueDB::recycleAndDeleteStaleJobs ( )

Recycle or destroy any jobs that have been claimed for too long.

Returns
int Number of jobs recycled/deleted

Definition at line 645 of file JobQueueDB.php.

References $count, $e, $res, array(), cache, getCacheKey(), getMasterDB(), JobQueue\incrStats(), throwDBException(), type, and wiki.

◆ selectFields()

static JobQueueDB::selectFields ( )
static

Return the list of job fields that should be selected.

Since
1.23
Returns
array

Definition at line 834 of file JobQueueDB.php.

References array().

◆ supportedOrders()

JobQueueDB::supportedOrders ( )
protected

Get the allowed queue orders for configuration validation.

Returns
array Subset of (random, timestamp, fifo, undefined)

Reimplemented from JobQueue.

Definition at line 59 of file JobQueueDB.php.

References array().

◆ throwDBException()

JobQueueDB::throwDBException ( DBError  $e)
protected

Member Data Documentation

◆ $cache

BagOStuff JobQueueDB::$cache
protected

Definition at line 37 of file JobQueueDB.php.

Referenced by doDeduplicateRootJob().

◆ $cluster

bool string JobQueueDB::$cluster = false
protected

Name of an external DB cluster.

False if not set *

Definition at line 39 of file JobQueueDB.php.

Referenced by getCacheKey().

◆ CACHE_TTL_LONG

const JobQueueDB::CACHE_TTL_LONG = 300

◆ CACHE_TTL_SHORT

const JobQueueDB::CACHE_TTL_SHORT = 30

Definition at line 31 of file JobQueueDB.php.

◆ MAX_AGE_PRUNE

const JobQueueDB::MAX_AGE_PRUNE = 604800

Definition at line 33 of file JobQueueDB.php.

◆ MAX_JOB_RANDOM

const JobQueueDB::MAX_JOB_RANDOM = 2147483647

Definition at line 34 of file JobQueueDB.php.

◆ MAX_OFFSET

const JobQueueDB::MAX_OFFSET = 255

Definition at line 35 of file JobQueueDB.php.


The documentation for this class was generated from the following file: