27 lines
1.2 KiB
Text
27 lines
1.2 KiB
Text
|
|
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.
|