X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=docs%2Fdeferred.txt;h=9a62fda92a2139455745749e7ee184be19f350c2;hp=fb9b84818dd965fb26c1bf3ae5e60f9e5b107878;hb=60882bb6b07aa0a9cbf0f8a2224cc94e2575dc11;hpb=fb38bbf72f7755a40cb8b277fe2f4244b1477fcd diff --git a/docs/deferred.txt b/docs/deferred.txt index fb9b84818d..9a62fda92a 100644 --- a/docs/deferred.txt +++ b/docs/deferred.txt @@ -1,43 +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. +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. +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. -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. -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 is some differents types of Jobs: +Currently there are a few different types of jobs: refreshLinks - Used to refresh the database tables that stores the links - beetween pages. When a page is cleared, all pages using these - page are also cleared by inseting a new job for all that pages. - Each job refresh only one page. + 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 see. Each job clear $wgUpdateRowsPerJob pages (500 by - default). + Clear caches when a template is changed to ensure that changes can be seen. + Each job clears $wgUpdateRowsPerJob pages (300 by default). enotifNotify - used when $wgEnotifUseJobQ is true to send mails using the job - queue. \ No newline at end of file + Used to send mail using the job queue.