我正在尝试使用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)中取消激活chaching或读取正确的计数?
答案 0 :(得分:0)
好的找到了:
只需要这样做:
Email.uncached do
count = ...
end