Rubyでの非同期処理
kaeruspoonで、ブログ更新pingを打つときの待ち時間が長いことがあるので、スレッドを使って非同期処理にしてみた。
def ping_check
if request.remote_ip == '(サーバのIPアドレス)'
diary = Diary.find(:first, :conditions => ["open_date = ?", Date.today])
Thread.start(diary) {|d| ping_send(d) if d}
render(:text => 'ping_check end', :layout => false)
else
redirect_to(unknown_url)
end
end
これだけ。これは単純な処理だから、何も考えなくても作れる。 まじろうみたいに素晴らしいものではないけれど。
[追記]全然速くならなかった。どうもスレッド切替えが行われなかったように見える。うーむ。
ユルさんが今日から仕事です。彼女の仕事では土日にはあまり休みがありません。一緒に遊べなくてつまらないので、日曜日は Rails勉強会@東京第19回に参加することにしました。ポジション・ペーパを作っとかなきゃ。何もネタがないのだけれども。