我正在研究Windows上的Ruby on Rails項目。我安裝了Ruby 1.86和Rails 2.35。直到我試圖實施彗星過程時,一切都很好。我編寫了下面的代碼來響應長查詢JavaScript請求。但每次調用此函數時,它都會掛起整個導航服務器,直到超時,纔會有第二個請求進入。 (我知道有juggernaut,但我喜歡首先自己實現一個:)紅寶石軌道循環導致服務器凍結
這是由於我的服務器設置?該項目將部署在一個Ngix和Passenger的Linux服務器上,它會遭受同樣的問題嗎?
def comet_hook
timeout(5) do
while true do
key = 'station_' + station_id.to_s + '_message_lastwrite'
if Rails.cache.exist?(key)
@cache_time = DateTime.parse(Rails.cache.read(key))
if @cache_time > hook_start
@messages = @station.messages_posted_after(hook_start)
hook_start = @cache_time
break
end
end
end
...
end
使用Rails的內存存儲高速緩存
而且,我不斷收到「不能修改凍結的對象」的錯誤,所以上面的腳本只是工作的我,當我切換到文件緩存。 :(