mirror of
https://github.com/YunoHost-Apps/mediawiki_ynh.git
synced 2024-09-03 19:46:05 +02:00
36 lines
1.7 KiB
Text
36 lines
1.7 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 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.
|