feedparserのtimeout

ってどうやるんだ?って前にも気にしてたような気が。
すっかり忘れているけどね。


んで、調べる。
どうも、4.1からはデフォルトのタイムアウト値からの変更をしないようになったということのようだ。
これ、待っていると結構長い。
UI的にはちょっとダメ。
なので、自分でsocketを使って自前で設定するしかない。


冒頭で設定。

# change socket timeout
import socket
defaulttimeout=socket.getdefaulttimeout()
socket.setdefaulttimeout(15)

終了処理の時に以下で戻す。

# recover socket timeout
socket.setdefaulttimeout(defaulttimeout)

値は秒数を入れる。


再セットしているけど、デフォルトではNoneが入っているみたい。

>>> import socket
>>> print socket.getdefaulttimeout()
None

Noneだとタイムアウトを利用しないって設定のようだ。
なるほど遅いわけだ。数分かかるもの。
でも、タイムアウトじゃないなら、なんで終わっているのかという疑問は、またこんどにしておく。
自前でタイマを持っているのじゃないかと思うのだけど、結果を空にして先に進む処理をしているだけのような気が。
処理そのものは成功しちゃっているようなので、tryでフックできないし。