summaryrefslogtreecommitdiff
path: root/docs/deferred.txt
diff options
context:
space:
mode:
Diffstat (limited to 'docs/deferred.txt')
-rw-r--r--docs/deferred.txt59
1 files changed, 34 insertions, 25 deletions
diff --git a/docs/deferred.txt b/docs/deferred.txt
index 06155c56..495e6594 100644
--- a/docs/deferred.txt
+++ b/docs/deferred.txt
@@ -1,27 +1,36 @@
-
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 (in a real
-O-O language these would be classes that implement an interface)
-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.
+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 (500 by default).
+
+ enotifNotify
+ Used when $wgEnotifUseJobQ is true to send mail using the job queue.