缓存弄乱了我的直播

Caching is messing up my Live-Stream

我正在尝试使用 SSE 在我的 rails 应用程序中进行流式传输。

这段代码有效,它正在流式传输到我的浏览器,但是 count 似乎被缓存了,因为当我通过控制台更改它时,它在这个控制器中保持不变。

class SseController < ActionController::Base
  include ActionController::Live

  def stream
    response.headers['Content-Type'] = 'text/event-stream'
    sse = SSE.new(response.stream)
    begin
      loop do
        count = Email.where(:read => false, :folder_id => nil, :deleted => false, :outgoing => false, :spam => false).count
        sse.write(count, :event => 'refresh')
        sleep 10
      end
      rescue 
      ensure
        sse.close
      end
    end
  end

当我在控制台中执行此部分时。它按预期工作。

loop do
  count = Email.where(:read => false, :folder_id => nil, :deleted => false, :outgoing => false, :spam => false).count
   sse.write(count, :event => 'refresh')
   sleep 10
end

如何在我的 SseController (::Live) 中停用缓存或读取正确的计数?

好的,找到了:

只需要这样做:

Email.uncached do 
  count = ...
end