什么是cron的最长执行时间。是否可以修改它,如果有任何副作用。
答案 0 :(得分:9)
上面接受的答案是不正确的。 Cron在Drupal的时间限制是硬编码到240秒。请参阅drupal_cron_run
中的includes/common.inc
功能,具体如下:
drupal_set_time_limit(240);
和
if (!lock_acquire('cron', 240.0)) {
(基于Drupal 7.12的来源)
因此,如果不破解核心,就无法在全球范围内进行更改。我听说它建议在drupal_set_time_limit
实现中调用hook_cron
,因为这样做会重置PHP的计数器。但是,当它是实施hook_cron
的第三方模块时,这对您无济于事。
答案 1 :(得分:3)
Drupal的cron的最长执行时间取决于您的php.ini
。
例如,如果使用wget -O - -q -t 1 http://www.example.com/cron.php
作为cron命令,则使用apache的php.ini来确定最长执行时间。
如果你使用php -f cron.php
作为你的cron命令,那么php-cli的php.ini用于确定最长的执行时间。
建议使用php-cli以获得更长的执行时间,您可以在/etc/php5/cli/php.ini
设置最长执行时间(如果使用debian linux),并且在cron运行时对apache没有副作用。
答案 2 :(得分:2)
我不知道是否一定是这种情况,因为我只是通过浏览器运行cron.php
而我的max excution time error
时间为./includes/common.inc
而我的最长执行时间为php.ini是1200秒。所以除了我的php.ini文件以外,Drupal正在抓取最大执行时间。
某个地方会出现在./includes/locale.inc
或{{1}}中。进入那里并有一些设置来调整drupal允许cron在放弃之前运行的时间
答案 3 :(得分:0)
此模块可以帮助您:Set Cron Time