MediaWiki
REL1_22
|
Class to handle job queues stored in Redis. More...
Public Member Functions | |
__construct (array $params) | |
include: | |
getAllDelayedJobs () | |
getAllQueuedJobs () | |
getCoalesceLocationInternal () | |
Do not use this function outside of JobQueue/JobQueueGroup. | |
getJobFromUidInternal ($uid, RedisConnRef $conn) | |
This function should not be called outside JobQueueRedis. | |
recycleAndDeleteStaleJobs () | |
Recycle or destroy any jobs that have been claimed for too long. | |
releaseReadyDelayedJobs () | |
Release any ready delayed jobs into the queue. | |
setTestingPrefix ($key) | |
Public Attributes | |
const | MAX_AGE_PRUNE = 604800 |
Protected Member Functions | |
doAck (Job $job) | |
doBatchPush (array $jobs, $flags) | |
doDeduplicateRootJob (Job $job) | |
doDelete () | |
doGetAbandonedCount () | |
doGetAcquiredCount () | |
doGetDelayedCount () | |
doGetPeriodicTasks () | |
doGetSiblingQueueSizes (array $types) | |
doGetSiblingQueuesWithJobs (array $types) | |
doGetSize () | |
doIsEmpty () | |
doIsRootJobOldDuplicate (Job $job) | |
doPop () | |
getConnection () | |
Get a connection to the server that handles all sub-queues for this queue. | |
getJobFromFields (array $fields) | |
getNewJobFields (Job $job) | |
optimalOrder () | |
Get the default queue order to use if configuration does not specify one. | |
popAndAcquireBlob (RedisConnRef $conn) | |
popAndDeleteBlob (RedisConnRef $conn) | |
pushBlobs (RedisConnRef $conn, array $items) | |
serialize (array $fields) | |
supportedOrders () | |
Get the allowed queue orders for configuration validation. | |
supportsDelayedJobs () | |
Find out if delayed jobs are supported for configuration validation. | |
throwRedisException ($server, RedisConnRef $conn, $e) | |
unserialize ($blob) | |
Protected Attributes | |
$compression | |
$key | |
RedisConnectionPool | $redisPool |
* | |
$server | |
Private Member Functions | |
getQueueKey ($prop, $type=null) |
Class to handle job queues stored in Redis.
This is faster, less resource intensive, queue that JobQueueDB. All data for a queue using this class is placed into one redis server.
There are eight main redis keys used to track jobs:
Additionally, "rootjob:* keys track "root jobs" used for additional de-duplication. Aside from root job keys, all keys have no expiry, and are only removed when jobs are run. All the keys are prefixed with the relevant wiki ID information.
This class requires Redis 2.6 as it makes use Lua scripts for fast atomic operations. Additionally, it should be noted that redis has different persistence modes, such as rdb snapshots, journaling, and no persistent. Appropriate configuration should be made on the servers based on what queues are using it and what tolerance they have.
Definition at line 59 of file JobQueueRedis.php.
JobQueueRedis::__construct | ( | array $ | params | ) |
include:
array | $params |
Reimplemented from JobQueue.
Definition at line 79 of file JobQueueRedis.php.
JobQueueRedis::doAck | ( | Job $ | job | ) | [protected] |
Job | $job |
MWException |
Reimplemented from JobQueue.
Definition at line 403 of file JobQueueRedis.php.
JobQueueRedis::doBatchPush | ( | array $ | jobs, |
$ | flags | ||
) | [protected] |
array | $jobs | |
$flags |
MWException |
Reimplemented from JobQueue.
Definition at line 183 of file JobQueueRedis.php.
JobQueueRedis::doDeduplicateRootJob | ( | Job $ | job | ) | [protected] |
Job | $job |
MWException |
Reimplemented from JobQueue.
Definition at line 445 of file JobQueueRedis.php.
JobQueueRedis::doDelete | ( | ) | [protected] |
Reimplemented from JobQueue.
Definition at line 493 of file JobQueueRedis.php.
JobQueueRedis::doGetAbandonedCount | ( | ) | [protected] |
MWException |
Reimplemented from JobQueue.
Definition at line 164 of file JobQueueRedis.php.
JobQueueRedis::doGetAcquiredCount | ( | ) | [protected] |
MWException |
Reimplemented from JobQueue.
Definition at line 127 of file JobQueueRedis.php.
JobQueueRedis::doGetDelayedCount | ( | ) | [protected] |
MWException |
Reimplemented from JobQueue.
Definition at line 147 of file JobQueueRedis.php.
JobQueueRedis::doGetPeriodicTasks | ( | ) | [protected] |
JobQueueRedis::doGetSiblingQueueSizes | ( | array $ | types | ) | [protected] |
array | $types | List of queues types |
Reimplemented from JobQueue.
Definition at line 557 of file JobQueueRedis.php.
References $res, $size, JobQueue\$type, array(), as, getConnection(), getQueueKey(), server, and throwRedisException().
Referenced by doGetSiblingQueuesWithJobs().
JobQueueRedis::doGetSiblingQueuesWithJobs | ( | array $ | types | ) | [protected] |
array | $types | List of queues types |
Reimplemented from JobQueue.
Definition at line 553 of file JobQueueRedis.php.
References doGetSiblingQueueSizes().
JobQueueRedis::doGetSize | ( | ) | [protected] |
MWException |
Reimplemented from JobQueue.
Definition at line 113 of file JobQueueRedis.php.
JobQueueRedis::doIsEmpty | ( | ) | [protected] |
MWException |
Reimplemented from JobQueue.
Definition at line 104 of file JobQueueRedis.php.
JobQueueRedis::doIsRootJobOldDuplicate | ( | Job $ | job | ) | [protected] |
Job | $job |
Reimplemented from JobQueue.
Definition at line 471 of file JobQueueRedis.php.
JobQueueRedis::doPop | ( | ) | [protected] |
MWException |
Reimplemented from JobQueue.
Definition at line 289 of file JobQueueRedis.php.
Reimplemented from JobQueue.
Definition at line 533 of file JobQueueRedis.php.
Reimplemented from JobQueue.
Definition at line 513 of file JobQueueRedis.php.
Do not use this function outside of JobQueue/JobQueueGroup.
Reimplemented from JobQueue.
Definition at line 549 of file JobQueueRedis.php.
References server.
JobQueueRedis::getConnection | ( | ) | [protected] |
Get a connection to the server that handles all sub-queues for this queue.
MWException |
Definition at line 814 of file JobQueueRedis.php.
Referenced by doGetSiblingQueueSizes().
JobQueueRedis::getJobFromFields | ( | array $ | fields | ) | [protected] |
JobQueueRedis::getJobFromUidInternal | ( | $ | uid, |
RedisConnRef $ | conn | ||
) |
This function should not be called outside JobQueueRedis.
$uid | string |
$conn | RedisConnRef |
MWException |
Definition at line 586 of file JobQueueRedis.php.
JobQueueRedis::getNewJobFields | ( | Job $ | job | ) | [protected] |
JobQueueRedis::getQueueKey | ( | $ | prop, |
$ | type = null |
||
) | [private] |
$prop | string |
$type | string|null |
Definition at line 838 of file JobQueueRedis.php.
Referenced by doGetSiblingQueueSizes().
JobQueueRedis::optimalOrder | ( | ) | [protected] |
Get the default queue order to use if configuration does not specify one.
Reimplemented from JobQueue.
Definition at line 91 of file JobQueueRedis.php.
JobQueueRedis::popAndAcquireBlob | ( | RedisConnRef $ | conn | ) | [protected] |
RedisConnRef | $conn |
RedisException |
Definition at line 368 of file JobQueueRedis.php.
JobQueueRedis::popAndDeleteBlob | ( | RedisConnRef $ | conn | ) | [protected] |
RedisConnRef | $conn |
RedisException |
Definition at line 336 of file JobQueueRedis.php.
JobQueueRedis::pushBlobs | ( | RedisConnRef $ | conn, |
array $ | items | ||
) | [protected] |
RedisConnRef | $conn | |
array | $items | List of results from JobQueueRedis::getNewJobFields() |
RedisException |
Definition at line 237 of file JobQueueRedis.php.
Recycle or destroy any jobs that have been claimed for too long.
MWException |
Definition at line 648 of file JobQueueRedis.php.
Release any ready delayed jobs into the queue.
MWException |
Definition at line 611 of file JobQueueRedis.php.
JobQueueRedis::serialize | ( | array $ | fields | ) | [protected] |
array | $fields |
Definition at line 779 of file JobQueueRedis.php.
JobQueueRedis::setTestingPrefix | ( | $ | key | ) |
$key | string |
Reimplemented from JobQueue.
Definition at line 852 of file JobQueueRedis.php.
JobQueueRedis::supportedOrders | ( | ) | [protected] |
Get the allowed queue orders for configuration validation.
Reimplemented from JobQueue.
Definition at line 87 of file JobQueueRedis.php.
References array().
JobQueueRedis::supportsDelayedJobs | ( | ) | [protected] |
Find out if delayed jobs are supported for configuration validation.
Reimplemented from JobQueue.
Definition at line 95 of file JobQueueRedis.php.
JobQueueRedis::throwRedisException | ( | $ | server, |
RedisConnRef $ | conn, | ||
$ | e | ||
) | [protected] |
$server | string |
$conn | RedisConnRef |
$e | RedisException |
MWException |
Definition at line 828 of file JobQueueRedis.php.
Referenced by doGetSiblingQueueSizes().
JobQueueRedis::unserialize | ( | $ | blob | ) | [protected] |
string | $blob |
Definition at line 796 of file JobQueueRedis.php.
JobQueueRedis::$compression [protected] |
Definition at line 63 of file JobQueueRedis.php.
JobQueueRedis::$key [protected] |
Definition at line 67 of file JobQueueRedis.php.
RedisConnectionPool JobQueueRedis::$redisPool [protected] |
*
Definition at line 60 of file JobQueueRedis.php.
JobQueueRedis::$server [protected] |
Definition at line 62 of file JobQueueRedis.php.
const JobQueueRedis::MAX_AGE_PRUNE = 604800 |
Definition at line 65 of file JobQueueRedis.php.