2016-12-20 6 views
0

私はSSEで私のレールアプリをストリーミングしようとしています。キャッシングが私のライブストリームを台無しにしています

このコードは動作しますが、私のブラウザにはストリーミングされていますが、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)でチャーチを読み書きしたり、正しい数を読み取ったりするにはどうすればよいですか?

答えて

0

わかりましたが、それを見つけた:

Email.uncached do 
    count = ... 
end 
:ちょうどこれを行うために必要な

関連する問題