Quel est le temps d'exécution maximal de cron. est-il possible de le modifier si c'est le cas?temps d'exécution maximal de cron
Répondre
La réponse acceptée ci-dessus est INCORRECTE. La limite de temps de Cron dans Drupal est codée en dur à 240 secondes. Voir la fonction drupal_cron_run
dans includes/common.inc
, en particulier ces lignes:
drupal_set_time_limit(240);
et
if (!lock_acquire('cron', 240.0)) {
(en fonction de la source de Drupal 7.12)
Donc, il n'y a pas moyen de changer cela à l'échelle mondiale sans noyau de piratage. Je l'ai entendu suggéré d'appeler drupal_set_time_limit
vous-même à l'intérieur de votre mise en œuvre hook_cron
, ce qui réinitialise le compteur de PHP. Cependant cela ne vous aidera pas quand il s'agit d'un module tiers implémentant hook_cron
.
La durée maximale d'exécution du cron de Drupal dépend de votre php.ini
. Par exemple si vous utilisez wget -O - -q -t 1 http://www.example.com/cron.php
comme commande cron, le fichier php.ini d'apache est utilisé pour déterminer la durée d'exécution maximale. Par exemple, si vous utilisez wget -O - -q -t 1 http://www.example.com/cron.php
comme commande cron.
Si vous utilisez php -f cron.php
comme commande cron, php.ini de php-cli est utilisé pour déterminer la durée d'exécution maximale. Il est recommandé d'utiliser php-cli pour une durée d'exécution supérieure, où vous pouvez définir le temps d'exécution maximum de /etc/php5/cli/php.ini
(si vous utilisez Linux debian) et n'avoir aucun effet secondaire sur apache pendant l'exécution de cron.
+1, mais un mot d'avertissement lors de l'appel Cron via cli: Assurez-vous qu'aucun de vos modules 'hook_cron()' mises en œuvre repose sur l'utilisation de variables fournies par le serveur Web , puisqu'ils ne seront évidemment pas disponibles dans ce contexte (passé un certain temps une fois à trouver qu'un module utilisait '$ _SERVER ['DOCUMENT_ROOT']' sur les invocations cron). –
Je ne sais pas si cela est nécessairement le cas comme je l'ai couru juste le cron.php
dans mon navigateur et je reçois un max excution time error
de 240 secondes alors que mon temps d'exécution maximum dans mon php.ini est de 1200 secondes. Donc, quelque part à part mon fichier php.ini, Drupal saisit le temps d'exécution maximum.
Quelque part serait dans le ./includes/common.inc
ou ./includes/locale.inc
. Dirigez-vous là-bas et il y a des paramètres pour ajuster combien de temps drupal permettra au cron de courir avant d'abandonner
Ce module peut vous aider: Set Cron Time
La plupart du temps l'état de mise à jour et le module de recherche provoquent l'échec de cron. – Serjas