如果我在MediaWiki的模板中进行更改,则在我编辑页面并重新保存页面之前,效果不会显示在使用该模板的页面上。如何在所有其他页面中反映更改?
早些时候: [[Trivia::{{{Trivia|}}}]]
假设我将样式应用于模板中的元素:
[[Trivia::{{{Trivia|}}}]]然后,使用此模板的页面中未显示的更改。
当您更改包含在许多页面上的模板时,MediaWiki必须更新所有受影响的页面。但是,默认情况下它不会这样做,因为在默认配置中,MediaWiki仅在有人请求页面时才运行。如果MediaWiki在有人请求页面时必须更新数百个(或者在维基百科的情况下,数百万个(页面,那么该人的请求将需要很长时间才能完成。
相反,MediaWiki有一个"工作"的概念。作业可以通过各种操作触发。例如,删除页面后,指向该页面的所有链接必须从蓝色变为红色;更改模板中的类别后,包含该模板的所有页面都必须切换到使用新类别。默认情况下,MediaWiki每次页面视图运行这些作业之一。这对于某些网站来说是可以的,但根据您的使用模式,它可能无法足够快地更新所有页面。
为了解决这个问题,MediaWiki引入了一个"作业队列"。通过使用此作业队列,可以在后台在批处理中运行作业,以便快速完成作业,并且请求不会因必须处理作业而减慢速度。请参阅上面的链接,了解如何设置作业队列。
另一种解决方案是创建一个 cron 作业,该作业将从目录中运行runJobs.php
脚本maintenance
例如每小时一次(或根据您的需要或多或少频繁(。