web-dev-qa-db-fra.com

wp-cron.php - Comment les transitoires Cron de WP sont-ils supprimés?

J'ai un réseau Wordpress dont la tâche est de désactiver le WP Cron et de le remplacer par un Apache Cron. J'ai configuré un script PHP qui, lorsqu'il est appelé par un cron Apache, parcourt tous les sites du réseau et envoie une requête à la page wp-cron.php de ce site, exécutant ainsi son cron.

Je voudrais utiliser la fonctionnalité transitoire de Wordpress pour limiter mon script PHP, car Wordpress limite son propre cron. Cependant, lorsque je fouille dans le code, le transitoire doing_cron est défini (dans le fichier cron.php # 217), mais jamais désactivé.

Est-ce que le transitoire est toujours indéfini ou est-ce que Wordpress attend 60 secondes pour relancer le cron (dans le fichier cron.php n ° 200)

Toute pensée sur le transitoire de doing_cron ou peut-être un autre moyen d'étrangler mon script cron serait appréciée.

3
Jonnybojangles

Les transitoires expirent par eux-mêmes. Pas besoin de les désactiver.

Et appeler wp-cron manuellement est simple. Il suffit de définir DISABLE_WP_CRON sur true dans le fichier wp-config pour désactiver le processus de génération de cron normal. Rendez ensuite votre système cron manuellement wp-cron.php manuellement pour traiter les travaux en attente.

Il n'y a pas d'autre astuce spéciale à faire. Pas besoin de bricoler avec des transitoires ou un codage spécial.

5
Otto

cron.php # 195

$flag = get_transient('doing_cron');

Si le transitoire a dépassé l'heure d'expiration, cet appel sera annulé et false renvoyé.

Je me fie généralement à wp cron, je n’ai donc aucune expérience pour vous conseiller sur le traitement de cette situation (pour les sites multisites au-dessus).

3
Rarst