【发布时间】:2012-04-20 21:57:07
【问题描述】:
如何在heroku 上使用带有rails 的流式API(如twitter 流式API)?它是否涉及让脚本与消耗流的工作人员一起运行?如果有任何现有资源可以记录此内容,请链接,到目前为止我还没有找到太多。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 heroku twitter
如何在heroku 上使用带有rails 的流式API(如twitter 流式API)?它是否涉及让脚本与消耗流的工作人员一起运行?如果有任何现有资源可以记录此内容,请链接,到目前为止我还没有找到太多。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 heroku twitter
您的两个选择是使用 worker dyno 运行脚本,该脚本使用流并将其写入数据存储(您的数据库等),或者在您的 rails 应用程序中动态获取流的一部分作为一部分您对 HTTP 请求的响应。
其中哪一项对您有意义,取决于您尝试对数据执行的操作以及您需要多少流。
【讨论】:
对不起,这个软的回答,这些代码或想法都不是我自己的......
在 Heroku 上不使用后台工作程序的情况下使用流式 API 的最简单方法是使用 EventMachine
在模型中,你会做这样的事情:
EM.schedule do
http = EM::HttpRequest.new(STREAMING_URL).get :head => { 'Authorization' => [ 'USERNAME', 'PASSWORD' ] }
buffer = ""
http.stream do |chunk|
buffer += chunk
while line = buffer.slice!(/.+\r?\n/)
handle_tweet JSON.parse(line)
end
end
end
更多详情请查看Adam Wiggins、Joslyn Esser 和Kenne Jima
【讨论】: