Jump to content

Manual:$wgJobRunRate

From mediawiki.org
Jobs: $wgJobRunRate
Number of jobs to perform per request.
Introduced in version:1.6.0 (r13088)
Removed in version:Still in use
Allowed values:(number >= 0)
Default value:1

Details

Number of jobs to perform per request. May be less than one in which case jobs are performed probabilistically. If this is 0, jobs will not be done during ordinary Apache requests. In this case, maintenance/runJobs.php should be run in loop every few seconds via a service or cron job. If using a cron job, be sure to handle the case where the script is already running (e.g. via "/usr/bin/flock -n <lock_file>"). If this is set to a non-zero number, then it is highly recommended that PHP run in fastcgi mode (php_fpm). When using a standard Apache PHP handler (mod_php), it is recommended that output_buffering and zlib.output_compression both be set to "Off", allowing MediaWiki to install an unlimited size output buffer on the fly. Setting output_buffering to an integer (e.g. 4096) or enabling zlib.output_compression can cause user-visible slowness as background tasks execute during web requests. Regardless of the web server engine in use, be sure to configure a sufficient number processes/threads in order to avoid exhaustion (which will cause user-visible slowness).

Explanation

The job queue is designed to hold many short tasks. By default, each time a request runs, one job is taken from the job queue and executed. If the performance burden of this is too great, you can reduce $wgJobRunRate by putting something like this in your LocalSettings.php :

$wgJobRunRate = 0.01;

This will cause one item in the job queue to run on average every 100 page views. It is important to understand that this means that on every page view the probability of running a queued item is 1 in 100. This means that (in theory at least) you could still end up with one job being run every page impression, or (at the other end of the scale) no jobs being run at all. However, in practice, providing you have enough traffic to make a meaningful sample size, it should be about 1 per 100 requests.

In some versions of MediaWiki, you can view the number of jobs at Special:Statistics. However, this number is a rough estimate, and thus misleading, so it was removed in 1.17 (r65059).

In later versions, you can still view it by calling the API:

The job queue is located in MediaWiki.php , function triggerJobs() (doJobs() before 1.23).

See also