12345678910111213141516171819202122232425262728293031323334353637 |
- deferred.txt
- A few of the database updates required by various functions here can be
- deferred until after the result page is displayed to the user. For example,
- updating the view counts, updating the linked-to tables after a save, etc. PHP
- does not yet have any way to tell the server to actually return and disconnect
- while still running these updates (as a Java servelet could), but it might have
- such a feature in the future.
- We handle these by creating a deferred-update object and putting those objects
- on a global list, then executing the whole list after the page is displayed. We
- don't do anything smart like collating updates to the same table or such
- because the list is almost always going to have just one item on it, if that,
- so it's not worth the trouble.
- Since 1.6 there is a 'job queue' in the jobs table, which is used to update
- link tables of transcluding pages after edits; this may be extended in the
- future to more general background tasks.
- Job queue items are fetched out of the queue and run either at a random rate
- during regular page views (by default) or by a batch process which can be run
- via maintenance/runJobs.php.
- Currently there are a few different types of jobs:
- refreshLinks
- Used to refresh the database tables that store the links between pages.
- When a page is changed, all pages using that page are also cleared by
- inserting a new job for all those pages. Each job refreshes only one page.
- htmlCacheUpdate
- Clear caches when a template is changed to ensure that changes can be seen.
- Each job clears $wgUpdateRowsPerJob pages (300 by default).
- enotifNotify
- Used to send mail using the job queue.
|