Che cosa è il tempo massimo di esecuzione di cron. è possibile modificarlo in tal caso eventuali effetti collaterali.drupal tempo massimo di esecuzione di cron
risposta
La risposta accettata sopra è ERRATA. Il limite di tempo di Cron in Drupal è hardcoded a 240 secondi. Vedere la funzione drupal_cron_run
in includes/common.inc
, in particolare queste linee:
drupal_set_time_limit(240);
e
if (!lock_acquire('cron', 240.0)) {
(basato sulla sorgente di Drupal 7,12)
Quindi, non v'è alcun modo per modificare questo globale senza nucleo di hacking. Ho sentito suggerire di chiamare lo drupal_set_time_limit
all'interno dell'implementazione hook_cron
, in questo modo si ripristina il contatore di PHP. Tuttavia questo non ti aiuterà quando si tratta di un modulo di terze parti che implementa hook_cron
.
Il tempo di esecuzione massimo per cron di Drupal dipende dal tuo php.ini
.
Ad esempio se si utilizza wget -O - -q -t 1 http://www.example.com/cron.php
come comando cron, php.ini di apache viene utilizzato per determinare il tempo di esecuzione massimo.
Se si utilizza php -f cron.php
come comando cron, php-cli's php.ini viene utilizzato per determinare il tempo massimo di esecuzione.
Si consiglia di utilizzare php-cli per tempi di esecuzione più elevati, in cui è possibile impostare il tempo massimo di esecuzione da /etc/php5/cli/php.ini
(se si utilizza debian linux) e non hanno effetti collaterali su apache mentre cron viene eseguito.
+1, ma una parola di avvertimento quando si richiama cron tramite CLI: Assicurarsi che nessuno dei vostri moduli 'hook_cron()' implementazioni si basa sull'utilizzo di variabili fornite dal server web , poiché ovviamente non saranno disponibili in quel contesto (trascorse un bel po 'di tempo una volta per scoprire che un modulo usava '$ _SERVER [' DOCUMENT_ROOT ']' sulle invocazioni di cron). –
Non so se questo è necessariamente il caso in quanto ho appena eseguito il cron.php
attraverso il mio browser e sto ottenendo un max excution time error
di 240 secondi mentre il mio tempo massimo di esecuzione nel mio php.ini è di 1200 secondi. Quindi, da qualche parte oltre al mio file php.ini, Drupal sta acquisendo il massimo tempo di esecuzione.
Che da qualche parte sarebbe nel ./includes/common.inc
o ./includes/locale.inc
. Andate lì e ci sono le impostazioni per regolare la durata della drupal che consentirà a cron di funzionare prima di abbandonare
Questo modulo può aiutare: Set Cron Time
La maggior parte dello stato di aggiornamento e del modulo di ricerca causa l'errore di cron. – Serjas