Manuel:$wgRunJobsAsync

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:$wgRunJobsAsync and the translation is 69% complete.
Other languages:
English • ‎français • ‎magyar • ‎polski • ‎中文 • ‎日本語
Tâches: $wgRunJobsAsync
Contrôle si les tâches liées aux requêtes sont exécutées de manière asynchrone ou synchrone.
Introduit dans la version :1.23.0
Retiré dans la version :Encore utilisé
Valeurs autorisées :(booléen)
Valeur par défaut :false (1.27.2, 1.28.1, 1.29+) git #1214a7ca
true (versions précédentes)

Quand l'exécution des tâches pendant les requêtes normales des pages est activée (en fixant $wgJobRunRate à un nombre plus grand que 0; par défaut 1), alors cette variable contrôle s'il faut les exécuter d'une manière asynchrone ou pas.

Détails

When running jobs asynchronously, an internal HTTP connection for handling the execution of jobs will be opened, and MediaWiki will return the contents of the page immediately to the client without waiting for the job to complete. Sinon, la tâche est exécutée dans le même processus que celui qui sert à la délivrer et le client doit attendre que cette tâche soit terminée. Lorsque la tâche ne s'exécute pas de manière asynchrone, si une erreur fatale survient pendant son exécution, elle se propage jusqu'au client, et le chargement de la page est aborté.

Même si $wgRunJobsAsync est mis à true, si PHP ne peut pas ouvrir une socket pour faire la requête HTTP interne, il va se replier sur l'exécution de la tâche en mode synchrone.

Les pages n'apparaissent pas dans leurs catégories

Plusieurs utilisateurs ont des problèmes avec les pages qui n'apparaissent pas dans leurs catégories, bien qu'elles leurs soient correctement assignées. Dans la plupart des cas, c'est un problème lié à la file d'attente des tâches. Ce que les gens observent habituellement comme problème, c'est que les pages n'apparaissent pas (immédiatement) dans leurs catégories. Reasons may be different: It is possible that the job queue is not working at all or that for the way the wiki is being used the queue is not executing enough jobs per page view so that constantly more jobs get queued than are executed effectively stalling execution.

Dans ces cas, il faudrait essayer les choses suivantes :

  • Essayer d'exécuter les tâches directement avec runJobs.php .
  • Afterwards, use the showJobs.php maintenance script to verify that there are 0 jobs in the queue.

If there still are any jobs (no matter if they are queued, claimed or delayed), then TRUNCATE the database table jobs in the database. Ceci va supprimer de la base de données, toutes les tâches non lancées. Ceci peut éventuellement supprimer des tâches qui étaient programmées pour s'exécuter dans le futur. These jobs logically will then not be run as they are getting deleted just as all other jobs.

After that point, category pages will show their member pages correctly again (at least for the current categorization state of the pages).

  • Fixez $wgRunJobsAsync à false et $wgJobRunRate à 2 ou plus. Ceci aide souvent (mais les performances deviennent plus mauvaises).
  • Afterwards, do a few edits, adding or removing categories from pages.

Then monitor the contents of the job table or use the showJobs.php maintenance script to check, if jobs are getting executed now.

Voir aussi