[JobQueue] Job queue refactoring and generalizing.
authorASchulz <aschulz@wikimedia.org>
Wed, 29 Aug 2012 00:01:31 +0000 (17:01 -0700)
committerTim Starling <tstarling@wikimedia.org>
Mon, 15 Oct 2012 22:39:58 +0000 (09:39 +1100)
commitb567f3602e8bac048c9dce0f359ef0131d947c28
tree92cc3dc0cc8986345d57f1a17b4e642e7315891d
parent16f25691ea5382eb333bcd6801e714727e68704e
[JobQueue] Job queue refactoring and generalizing.

* Added support for different queue types and methods for storing queues.
* Treat each job type as being on its own queue, at least logically.
* Added $wgJobTypeConf to configure queue types for each job type.
* Improved the job DB table so that duplicate job checks actually work
  and are faster. Also improved the method for popping rows of the table.
* Disabled duplicate job removal for everything except refreshLinks.
  The DELETE statements just add DB overhead and are not useful for cheap
  jobs, especially ones with start/end params (which are unlikely to have
  exact duplicates).

Change-Id: I49824c7fa855fea4ddcac5c9901ece8c2c0101d0
14 files changed:
includes/AutoLoader.php
includes/DefaultSettings.php
includes/Wiki.php
includes/installer/MysqlUpdater.php
includes/installer/SqliteUpdater.php
includes/job/Job.php
includes/job/JobQueue.php [new file with mode: 0644]
includes/job/JobQueueDB.php [new file with mode: 0644]
includes/job/JobQueueGroup.php [new file with mode: 0644]
includes/job/RefreshLinksJob.php
maintenance/archives/patch-job_token.sql [new file with mode: 0644]
maintenance/runJobs.php
maintenance/sqlite/archives/patch-job_token.sql [new file with mode: 0644]
maintenance/tables.sql