高橋征義です。 "NAKAMURA, Hiroshi" <nakahiro / sarion.co.jp>さん: > わざわざ振り直して頂いたのに,お返事が遅くてすいません.^^; いえいえ、こちらこそ(^^; > > ・やっぱ並行でエージェントとばしたい。 > > (結構時間がかかる。遅い時だと現在49ドメインで3分くらいかかったりする。 > > HEADリクエストだけなのに) > > ネットワークへの負荷を考えると,どのくらい平行に動かすのが > 最適なのかは,悩みどころですよね. うーん、HEADだけしか飛ばさないのと、プロセスは1個ですませる ということなので、ばしばし並行させたい、という欲望はあるの ですが(^^; > 約170ドキュメントの更新時間チェックに,平均90秒くらいです. > 単純に6倍すると...9分ですか. なるほど。似たようなものでしょうか。 > > ・同じホストへのリクエストは一回の接続でまとめて取得するべき。 > > そう思います.HTTP/1.1で接続しておきながら > 毎度セッションを張り直すのは,非常にかっこわるいです. ですよね〜。というか、そうでなければ別にHTTP/1.1にこだわる必要も ほとんどないわけで。 > えーと,KNClientは,それを目指して作り始めたものの, > Persistent Connectionsには対応してません. げ、そうだったんですか? # ソースちゃんと読んでないのがばればれですね(^^;; > さらに言えば,KNClientは,複数行にまたがるHTTPヘッダにも > 対応してません(http-accessは対応してます). そうだったんですね。なるほど。 > というわけで,現時点では, > http-accessを(必要なら)修正して使うのがベストだと思います. 分かりました。http-accessにしてみます。 # でもKNClientも期待してます(^^) > > 最初はhttp-accessを使ってみたのですが、どうもコネクションを張った > > ままrequestするのがうまくいきませんでした(毎回closeしてopenしなおせば > > OKでした)。 > > 以前のスレッドをちゃんと追いかけてなかったのですが, > どういう現象なんでしょうか. これ、いろいろいじったら、原因がすこし分かりました。 HTTP/1.0なサーバに対して失敗するようです。 http-accessでは、request_head などを実行すると、@statusが INITであればあらためてconnectするのですが、今のところ closeしなければINITになりません。 なので、request_headを何度か送ろうとすると、一度目はいいんですが、 二度目はconnectをやり直しません。HTTP/1.1対応のサーバに対しては それで構わないのですが、HTTP/1.0のサーバはKeep-Aliveできないので、 失敗してしまいます。どうしたものか。 # まあ、状態遷移をちゃんと把握してないのが敗因なのですが。 > Keep-Alive対応を考えていたんですが, > ちょっとあのままでは具合が悪いことに気づき, > 一から設計し直したりしてました. > 現在作成中のモノでは, (略) > なんて呼び出せるようになるといいなぁ,なんて夢想してます. おお。すごそうですね。頑張ってください(^^) > 「いやまぁ既に動いてるものもあるし」なんて弱気.^^; そんなこと言わずに(^^;; 高橋征義 (TAKAHASHI Masayoshi) Email:maki / inac.co.jp