铁轨 + TweetStream gem 重新连接

发布于 2024-10-06 06:21:59 字数 900 浏览 4 评论 0原文

嘿,我刚刚测试了 TweetStream gem。

示例:

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

谢谢!

Hey, I just tested the TweetStream gem.

Example:

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

This example works.

Questions:

  1. I tried restarting my router (internet connection lost) and after that no new messages have arrived. Can someone explain this behavior to me?
  2. I tested the daemon. What happens if no internet connection is available for a day or more? Will it reconnect automatically?
  3. I like Rufus gem (for background processes). Can I somehow integrate this code with Rufus where I would check if the process is still active?

My reconnect solution (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!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文