Rails + TweetStream gem переподключение - PullRequest
2 голосов
/ 05 декабря 2010

Эй, я только что проверил камень TweetStream.

Пример:

TweetStream::Client.new('myuser','mypass').track('ruby', 'rails') do |status|  
 puts "[#{status.user.screen_name}] #{status.text}" 
end

Этот пример работает.

Вопросы:

  1. Я попытался перезапустить мой маршрутизатор (интернет-соединение потеряно), и после этого новые сообщения не поступили. Может кто-нибудь объяснить мне это поведение?
  2. Я проверил демона. Что произойдет, если интернет-соединение не будет доступно в течение дня или более? Будет ли он автоматически подключаться?
  3. Мне нравится Rufus gem (для фоновых процессов). Могу ли я как-то интегрировать этот код с Rufus, где я бы проверил, активен ли процесс?

Мое решение для переподключения (config / initializers / tweet_stream.rb):

client = nil
scheduler = Rufus::Scheduler.start_new
scheduler.every '30min', :first_in => '1s' do |job|
  client.stop rescue nil
  client = TweetStream::Client.new('user','pass').on_error do |message|
    Rails.logger.info "[Rufus][#{Time.now}] TweetStream error: #{message}"
  end.track('love') do |status|
    Rails.logger.error "[TweetStream] Status: #{status.id}"
  end
end

Thx!

...