4

herokuのレールを使用してストリーミングAPI(TwitterストリーミングAPIなど)をどのように消費しますか?ストリームを消費するワーカーでスクリプトを実行し続ける必要がありますか?これを文書化した既存のリソースがあれば、リンクしてください。これまでのところ、あまり見つけることができませんでした。

4

2 に答える 2

3

2つのオプションは、ワーカーdynoを使用して、ストリームを消費してデータストア(データベースなど)に書き込むスクリプトを実行するか、応答の一部としてRailsアプリケーションでストリームの一部をオンザフライでフェッチすることです。 HTTPリクエストに。

それらのどれがあなたにとって意味があるかは、あなたがデータで何をしようとしているのか、そしてあなたが必要とするストリームの量に依存します。

于 2012-04-21T00:06:10.837 に答える
1

ソフトな答えで申し訳ありませんが、このコードやアイデアはどれも私自身のものではありません...

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 WigginsJoslyn EsserKenneJimaをご覧ください。

于 2012-09-08T14:01:15.790 に答える