Эй, я только что проверил камень TweetStream.
Пример:
TweetStream::Client.new('myuser','mypass').track('ruby', 'rails') do |status|
puts "[#{status.user.screen_name}] #{status.text}"
end
Этот пример работает.
Вопросы:
- Я попытался перезапустить мой маршрутизатор (интернет-соединение потеряно), и после этого новые сообщения не поступили. Может кто-нибудь объяснить мне это поведение?
- Я проверил демона. Что произойдет, если интернет-соединение не будет доступно в течение дня или более? Будет ли он автоматически подключаться?
- Мне нравится 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!