cron 的最大执行时间是多少?如果有任何副作用,是否可以对其进行修改。
4 回答
上面接受的答案是不正确的。Drupal 中 Cron 的时间限制被硬编码为 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
。
Drupal 的 cron 的最大执行时间取决于您的php.ini
.
例如,如果您使用cron 命令,则 apache 的 php.ini 用于确定最大执行时间。wget -O - -q -t 1 http://www.example.com/cron.php
如果您使用php -f cron.php
cron 命令,则使用 php-cli 的 php.ini 来确定最大执行时间。
建议使用 php-cli 以获得更长的执行时间,您可以在其中设置最大执行时间/etc/php5/cli/php.ini
(如果您使用 debian linux)并且在 cron 运行时对 apache 没有副作用。
我不知道这是否一定是这种情况,因为我刚刚cron.php
通过我的浏览器运行,我得到了max excution time error
240 秒,而我的 php.ini 中的最大执行时间是 1200 秒。所以除了我的 php.ini 文件 Drupal 正在获取最大执行时间。
某处将在./includes/common.inc
or./includes/locale.inc
中。进入那里,有一些设置可以调整drupal允许cron在放弃之前运行多长时间
本模块可以帮助您:设置 Cron 时间