私はphpで非常に長いタスクを実行しています。これは Web サイトのクローラーであり、サーバーの過負荷を防ぐために各ページで 5 秒間スリープ状態にする必要があります。スクリプトは次で始まります。
ignore_user_abort(1);
session_write_close();
ob_end_clean();
while (@ob_end_flush());
set_time_limit(0);
ini_set('max_execution_time',0);
数時間後 (3 ~ 7 時間)、スクリプトは目に見える理由もなく終了します。確認しました
- Apache エラー ログ (なし)
- php_errors.log (何もない)
- エラーの出力 (10 578 467b のデバッグ出力、エラーなし)
- メモリ消費量 (安定、
memory_get_usage(true)
5 秒ごとにチェックして約 3M、制限を 512M に設定)
同様の理由でwgetとchromeを使用してチェックしていたため、ブラウザではありません。出力は2〜3秒ごとにブラウザに送信されるため、それが問題だとは思いません+ユーザーの中止を無視します。
問題を見つけるために確認できる他の場所はありますか?