1

我们正在尝试在 Rails 3.2 中将大数据流式传输为 JSON。Rails 开箱即用的流式处理仅适用于部分,因此我们决定将 JSON 生成为文本。正如其他帖子中所建议的那样,我为每个方法创建了一个 Stream 类,并为每个对象做了一个“yield”。

Unicorn 服务器在 3 分钟内没有发送任何响应,然后将所有数据发回。

  • 流媒体在独角兽服务器中工作吗?

  • 如何强制刷新输出?

我们在 ELB 后面托管此服务器,请求在 60 秒后超时。

控制器方法

def listings
   self.response_body = Stream.new Listing
end

流类

class Stream
  def initialize collection
    @collection = collection
  end

  def each
    size = @collection.count
    index = 0
    yield "["
    @collection.find_each do |obj|
       yield (size - 1 == index) ? obj.to_json : "#{obj.to_json},"
       index += 1
    end
    yield "]"
  end
end
4

0 回答 0