トップ «前の日記(2006/07/18 (火) ) 最新 次の日記(2006/07/20 (木) )» 編集 RSS feed

HsbtDiary


2006/07/19 (水) [長年日記]

[tDiary][spam][filter]spamフィルタにtimeoutを設定した

yamkさんの日記でDNSBLを使うリファラフィルタが原因で日記の表示が遅くなっているとの報告を見かけたので、リファラフィルタにtimeoutを利用するようにしてみた。

Exceptionを拾うときにResolvTimeoutとTimeoutErrorとでかぶってしまうような気がしたので、ResolvTimeoutで行っているDNSBL問い合わせの再試行処理の方をばっさり削除。これで少しは早くなるかな?

[tDiary][ruby][spam][Threads]Threadに破れる

spamフィルタを改造するついでに

22:34 sho > Threadつかって同時問い合わせするともっとカッコいいぞ(笑)

と隊長から牙指令を受けたのでping.rbを眺めながら挑戦してみるも、上手くいかず。ソースはこんな感じね。

def black_domain?( domain )
   threads = []
   @spamlookup_domain_list.split(/\n/).each do |dnsbl|
      threads << Thread.start( dnsbl ) do |dnsbl|
         begin
            timeout(5) do
               address = Resolv.getaddress( "#{domain}.#{dnsbl}" )
               return true
            end
         rescue ResolvError
         rescue TimeoutError
         rescue Exception
         end
      end
   end
   threads.each {|t| t.join }
   return false
end

どの時点でreturn trueをすべきかってことが問題なんだけど、さっぱりわからず。ぬーん、Threadはもう少し修行しないとだめだなー。

この辺は次回に続く。

[Life][Work]疲れているのか?

コミットする時に同じディレクトリにあるゴミファイルまでコミットしてしまった。すぐにcvs removeしたけど、こんなポカミスをするなんて、やっぱ疲れてるのかなー。