正确启动多个TweetStream守护进程以监控Twitter的方法

时间:2012-01-10 16:47:39

标签: ruby-on-rails ruby-on-rails-3 daemon

我正在使用Tweetstream gem来监控单个Twitter用户流,我希望将其扩展为监控网站每个用户的用户流。我目前通过部署rake启动此守护程序。引入多个守护进程(每个用户一个)引入了一些我以前没有处理过的问题:

  1. 如何启动所有这些守护进程?我会在他注册时为用户启动一个。是否有理由在Capistrano部署中另外停止它们然后运行循环遍历所有用户的rake任务并再次为每个用户启动一个守护进程?
  2. 如何监控所有守护进程以确保它们都正常运行?
  3. RAM和处理大量守护进程的成本是多少?
  4. 我还缺少其他任何考虑因素。
  5. 您的见解会让我有信心继续:)谢谢!

2 个答案:

答案 0 :(得分:0)

我显然不知道您的代码,但tweetstream可以使用一个守护程序监视多个用户。此代码来自their docs

# Use 'follow' to follow a group of user ids (integers, not screen names)
TweetStream::Client.new.follow(14252, 53235) do |status|
  puts "#{status.text}"
end

这只是使用Twitter's API docs中描述的Twitter API“follow”参数。显然,您需要处理传入的数据并执行您正在执行的操作,但每个status element应返回解析用户所需的数据。除非你的应用程序非常小,否则运行多个进程来完成这项工作确实不是一个好的选择。

答案 1 :(得分:0)

看起来他们实际上并不想要这个(2012年1月11日)。从他们的文件:

  

用户流几乎所有更新用户显示所需的数据。   需要用户的OAuth令牌。提供公共和受保护   来自以下,直接消息,提及和其他事件的状态   采取和由用户。大量用户流可能不是   从同一主机或服务创建。例如,一个应用程序   一次显示几个帐户可能会打开一个连接   帐户。主要用例是为Twitter提供更新   客户端。

     

站点流BETA允许多个用户流多路复用   站点流连接。一次超过少数用户流   连接从同一主机或服务Site Streams打开   必须使用。主要用例是网站和其他服务   集成。

所以看来我应该申请访问这个。