PHP 長い処理が止まってしまう場合 time of 30 seconds
☆PHP 長い処理が止まってしまう場合 time of 30 seconds
PHPに詳しい方なら当然の事なんでしょうけど、ちょっと手間取ったので覚書です。
あるちょっとだけ重いバッチ処理を1日に1回だけ行っているのですが、
それが突然、途中で中止するようになりました。
C言語の方が慣れているので、こういう場合、
変数の最大や配列の大きさオーバーなのかなと、ジローとソースを眺めていたんですが、
別に問題なさそうです。
そこでやっとサーバーのエラーログを見ると、
該当ソースファイルに、
「Maximum execution time of 30 seconds exceeded」
とありました。
「30秒の最大実行時間を超え」
ての事です。
どうやらタイムアウトっぽいです。
C言語とかのスタンドアローンの作り方で慣れているので、
Cでは、通信系のプログラムでなければ、処理が遅いというだけで、
タイムアウトにはならないので、パッと気がつきませんでした。
PHPのサーバーにはタイムアウトというのも設定されているんだなあと知りました。
ちょっと処理数が増えたので、今までのデフォルトの30秒以内では終わっていないとの
事のようです。
そこで、コードに
という関数を追加で、60秒にして対処出来ました。
引数は、秒のようです。
ちょっと勉強になりました。
記述:2013年10月頃
PHPに詳しい方なら当然の事なんでしょうけど、ちょっと手間取ったので覚書です。
あるちょっとだけ重いバッチ処理を1日に1回だけ行っているのですが、
それが突然、途中で中止するようになりました。
C言語の方が慣れているので、こういう場合、
変数の最大や配列の大きさオーバーなのかなと、ジローとソースを眺めていたんですが、
別に問題なさそうです。
そこでやっとサーバーのエラーログを見ると、
該当ソースファイルに、
「Maximum execution time of 30 seconds exceeded」
とありました。
「30秒の最大実行時間を超え」
ての事です。
どうやらタイムアウトっぽいです。
C言語とかのスタンドアローンの作り方で慣れているので、
Cでは、通信系のプログラムでなければ、処理が遅いというだけで、
タイムアウトにはならないので、パッと気がつきませんでした。
PHPのサーバーにはタイムアウトというのも設定されているんだなあと知りました。
ちょっと処理数が増えたので、今までのデフォルトの30秒以内では終わっていないとの
事のようです。
そこで、コードに
set_time_limit(60); // 長い処理の場合、タイムアウトしてしまうので設定する必要がある。
という関数を追加で、60秒にして対処出来ました。
引数は、秒のようです。
ちょっと勉強になりました。
記述:2013年10月頃
Twitter Facebook Google+ はてな Pocket LINE
管理人による書き込みの確認後、荒らし書き込みでない場合に表示させていただきます。
悪意ある書き込みや挑発的な書き込みと思われる内容は、表示させません。
その為、ちょっと書き込みから表示までに時間がかかってしまいます。ご了承下さい。
<No.1>
(管理人による内容の確認の後、表示されます。お待ちください。)
(2020/07/11)
(管理人による内容の確認の後、表示されます。お待ちください。)
(2020/07/11)
暑さの一番の原因はなんだと思いますか?
あなたの支持する政党はどの党ですか?
今のページの関連ページのリストへ
ザ・覚書のトップページに戻る
全ページのリストへ