- - PR -
apacheにおけるcgiタイムアウトについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-03-10 15:20
いつもお世話になります。
Redhat7.2上でapache1.3.20-16を動かしています。 cgiで大きなデータ(約450MB)の入出力をしていると、最後まで 完了しない時があります。(ピーク時など) ウェブ上のプログラムで、450MBのファイルにデータ1件更新 するのも時間がかかってしまいます。 そこで教えてほしいのですが、ループした時などの為に、 プログラムが一定時間走りっぱなしの場合、設定時間で プログラムをとめたりしているパラメタなどhttpd.conf の中などにあるのでしょうか? (原因がそこにあるかはわかりませんが・・・) httpd.confと日本語訳されたものを見比べたのですが わかりませんでした。 ある場合、どんなパラメタで変更できるのでしょうか? 是非教えてください。 無い場合・・・どうしようもないですよね。 時間だけでもわかれば教えていただけると助かります。 データ分割するのが手っ取り早いのはわかっていますが、 今のところどうしても一つのファイルで動かさないといけないので・・・ よろしくお願いします。 |
|
投稿日時: 2005-03-10 17:01
Apache は httpd.conf に Timeout ディレクティブがあるので、これをある程度大きくしておく必要があるかもしれませんし関係無いかもしれません。普通はクライアント側が先にタイムアウトとして処理を中断します。大体1分くらいですかね。この時実行中の CGI プログラムには SIGALERT か何かが通知されるとかだったような(うろ覚え)。で、これをタイムアウトさせないように、時間のかかる処理を行っている間はダミーのデータを送り続ける等の対処をすることになります。この方法で10分間タイムアウトさせないようにしたことがあります。IE、Opera7、Firefox で確認しました。あとはバックグラウンドで処理をさせるとかですかね。
それよりも、450MBのデータファイルを毎回更新するっていう処理の方をなんとかした方が良いと思うのですが…。どんな種類のデータなんでしょうか? |
|
投稿日時: 2005-03-10 17:17
ほとんどは累積されているファイルなんです。
実際は旅費の情報の累積です。(詳細は書けないです。スミマセン) 分割すると早いのはわかりますがプログラム作成者が 私じゃないもので・・・ やはりクライアント側からの1分がそうですか。 多分Timeoutは300に設定しているので違うな〜と思ってました。 使った人が1分前後(計ったわけじゃないのであいまい・・・)だった と言ってたので。 以前CGIを使ってファイルをダウンロードする際、IISを使っていて、 5分で切れて、IISの設定を15分に変えたので、同じようなのがapacheであるのかな と思い探しています。 SIGTERMなども調べたのですがわからなくて困っていました。 データ容量を削減する方向も検討していますがすぐにできずに 重い腰を持ち上げるまで時間設定で逃げれないかと・・・ 返信ありがとうございました。 |
1