いくつかの foreach ループがあり、使用するすべてのループの最後に
set_time_limit(30)
これにより、カウンターがゼロに戻ります。
現在、スクリプトはより長い時間実行されます (API を使用して 5000-10000 の記事を取得し、DB に保存します) が、しばらくすると (既に大量のデータを処理している場合)、「30 秒の最大実行時間を超えました」というメッセージが表示されます。
メモリ不足のせいでしょうか?どうすればこの問題に取り組むことができますか?
スクリプトは API を使用して記事を取得しており、foreach ループは基本的にこのように使用されます
foreach($articles as $article)
{
//do stuff with single article using $article
set_time_limit(30);
}
1 つの記事を取得して処理するのに 30 秒以上かかるとは思いませんが、スクリプトをしばらく実行すると、その制限に達したようです。私は何を間違っていますか?set_time_limit(9000) またはそのようなものを使用して、スクリプトが最大 30 秒よりも長い 5 秒のジョブを実行できるようにしたくありません。これにより、おそらくジョブが完了しますが、これは良い方法ではないと思います問題を解決するには?