[ Index ]

PHP Cross Reference of MediaWiki-1.24.0

title

Body

[close]

/includes/jobqueue/utils/ -> BacklinkJobUtils.php (summary)

Job to update links for a given title. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Author: Aaron Schulz
File Size: 122 lines (5 kb)
Included or required:0 times
Referenced: 0 times
Includes or requires: 0 files

Defines 1 class

BacklinkJobUtils:: (1 method):
  partitionBacklinkJob()


Class: BacklinkJobUtils  - X-Ref

Class with Backlink related Job helper methods

partitionBacklinkJob( Job $job, $bSize, $cSize, $opts = array()   X-Ref
Break down $job into approximately ($bSize/$cSize) leaf jobs and a single partition
job that covers the remaining backlink range (if needed). Jobs for the first $bSize
titles are collated ($cSize per job) into leaf jobs to do actual work. All the
resulting jobs are of the same class as $job. No partition job is returned if the
range covered by $job was less than $bSize, as the leaf jobs have full coverage.

The leaf jobs have the 'pages' param set to a (<page ID>:(<namespace>,<DB key>),...)
map so that the run() function knows what pages to act on. The leaf jobs will keep
the same job title as the parent job (e.g. $job).

The partition jobs have the 'range' parameter set to a map of the format
(start:<integer>, end:<integer>, batchSize:<integer>, subranges:((<start>,<end>),...)),
the 'table' parameter set to that of $job, and the 'recursive' parameter set to true.
This method can be called on the resulting job to repeat the process again.

The job provided ($job) must have the 'recursive' parameter set to true and the 'table'
parameter must be set to a backlink table. The job title will be used as the title to
find backlinks for. Any 'range' parameter must follow the same format as mentioned above.
This should be managed by recursive calls to this method.

The first jobs return are always the leaf jobs. This lets the caller use push() to
put them directly into the queue and works well if the queue is FIFO. In such a queue,
the leaf jobs have to get finished first before anything can resolve the next partition
job, which keeps the queue very small.

$opts includes:
- params : extra job parameters to include in each job

param: Job $job
param: int $bSize BacklinkCache partition size; usually $wgUpdateRowsPerJob
param: int $cSize Max titles per leaf job; Usually 1 or a modest value
param: array $opts Optional parameter map
return: Job[] List of Job objects



Generated: Fri Nov 28 14:03:12 2014 Cross-referenced by PHPXref 0.7.1