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のソースに基づく)
したがって、コアをハッキングせずにこれをグローバルに変更する方法はありません。PHPのカウンターがリセットされるため、実装drupal_set_time_limit
内で自分自身を呼び出すことが提案されていると聞きました。hook_cron
ただし、を実装しているサードパーティのモジュールの場合は役に立ちませんhook_cron
。
Drupal の cron の最大実行時間は、php.ini
.
たとえば、cron コマンドとして使用する場合、apache の php.ini を使用して最大実行時間を決定します。wget -O - -q -t 1 http://www.example.com/cron.php
cron コマンドとして使用する場合php -f cron.php
、php-cli の php.ini を使用して最大実行時間を決定します。
より長い実行時間のために php-cli を使用することをお勧めします。これにより、(debian Linux を使用している場合) から最大実行時間を設定でき、/etc/php5/cli/php.ini
cron の実行中に apache に副作用がありません。
cron.php
ブラウザを介して実行したところmax excution time error
、php.ini の最大実行時間が 1200 秒であるのに対し、240 秒を取得しているため、これが必ずしも当てはまるかどうかはわかりません。したがって、私の php.ini ファイル以外のどこかで Drupal が最大実行時間を取得しています。
そのどこかは./includes/common.inc
orにあり./includes/locale.inc
ます。そこに向かうと、あきらめる前にdrupalがcronの実行を許可する時間を調整する設定があります
このモジュールはあなたを助けることができます: Cron 時間の設定