Personal tools

PINGサーバーちと改良

いや,もともとだめな仕様だったんですが,更新報告用のPINGサーバー,以下ちょっと改良しました。

  • タイムアウトを追加。urllibってなんでタイムアウトないんだろうなあ(ブツブツ)
  • 一度PINGを受けてblogにRDFを読みに行くスクリプトに排他制御追加

というわけで,より安定して動くようになった(ハズ)。でも,あんまりイジめないでね。PINGサービスももっとプロモーションして使ってもらわないとなあ。

Category(s)
zope
The URL to Trackback this entry is:
http://coreblog.org/ats/110/tbping

タイムアウトならhttplib

Posted by malo at 2003-11-04 20:58

httplibのgetresponse()が使えると思います。


タイムアウトなら408が帰ってくると思います。

たまたま,リンク切れを自動検出する外部メソッドを作っていたので,タイムリーな話題でした。

参考までに

Posted by malo at 2003-11-04 21:08
 自分で作ったURLが存在するか調べる関数です。
 プログラムは我流ですので,アドバイスなどいただけたら有難いです。


import httplib
from string import split
Host = split(URL, '/')[2]
Path = '/' + split(URL,'/',maxsplit=3)[3]
conn = httplib.HTTPConnection(Host)
conn.request("GET", Path)
res = conn.getresponse()
conn.close()
return res



Re: PINGサーバーちと改良

Posted by ats at 2003-11-04 22:12

>maloさん

私が困っていたのは応答しないホストに対するタイムアウトでして,せっかくいただいたサンプルは役立てそうにありません(スイマセン)。つまり,conn.request()の時点で応答が帰って来ない/時間がかかる場合に困ったな,ということなのでした。


www.python.jp/Zope/PyLog/1065766088/index_html

失礼しました

Posted by malo at 2003-11-04 22:51

HTTPConnectionからrequestの間ですね。
なるほど。try文を工夫してタイムアウトが検出できるのかな〜?

urlparse便利ですね。これいただきます。

Re: PINGサーバーちと改良

Posted by ats at 2003-11-04 23:07

応答がない相手に対しては,urllibとかは延々応答を待つので,スッドレなんかを使って時間を区切るですよ。

Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
(Required)
コメントスパム避けのための認証文字列です

Captcha Image

Pythonな求人
r = urlopen("http://www.webcore.co.jp/recruit")
About this blog
■Author
atsこと柴田淳です。Atsushiはガイジンにうまく発音して頂けないので,これからはJunというペンネームで行こうと思っていましたがあんまり使ってません。
Webcore株式会社 代表取締役
■TRIVIAL TECHNOLOGIES 2.0
トリビアル・テクノロジー 2.0,「トリテク 2.0」と呼んでください。
Blog(ブログ)サイトです。Plone上で動く,オープンソースのBlog Product - COREBlog2を使っています。
 
最近書いた本,Mook
みんなのPython Webアプリ編
Pythonの基礎から,Webアプリやフレームワークの仕組みまで,つまることなく一気に学べる書籍です。「みんなのPython」と一緒に読んでください:-)。
みんなのPython
Pythonの入門書です。基本的なことから分かりやすく解説するよう勤めました。Pythonをはじめたいと思っている人,JavaやC++,PerlやRubyを学ぼうと思って躓いてしまった人はぜひ読んで下さい。
 

Powered by Plone, the Open Source Content Management System