2010-01-21 29 views
0

我正在轉向從PHP的Ruby/Rails,我一直很好奇的一件事是,如果我想做一個實時更改的PHP,我可以簡單地編輯文件,單擊保存,它是活動的(假設我正在編輯現場環境);沒有應用程序爲我的用戶重新部署或停機。重新部署應用程序時,活動用戶會話會發生什麼情況?

隨着rails,幾乎所有我做出的更改,需要重新部署應用程序(我認爲?)。

當我重新部署實時應用程序時,所有正在使用該應用程序的活用戶會話會發生什麼情況,是否強制它們並要求它們重新登錄?如果在應用程序重新部署時刷新它們,會發生錯誤嗎?

對不起,如果這有一個明顯的答案,但我看不到它在我的書/教程。謝謝

回答

1

當您在PROD設置中運行rails應用程序時,必須重新啓動服務器以使代碼生效。您可以選擇將會話存儲在數據庫,文件存儲,cookie中。 Cookie有限制您可以使用多少大小。所以最好的方法是使用數據庫,它將會話重新啓動時存儲您的會話。

+0

數據庫不一定是最好的方法。事實上,我認爲這是最糟糕的方式之一。使用memcached將它們存儲在內存中會更好。 – jonnii 2010-01-21 21:55:24

0

Rails支持多種存儲會話的方式,包括數據庫和文件存儲。在這種情況下,他們不必重新登錄。您必須重新啓動服務器才能部署Rails代碼更改,但通常需要幾秒鐘。

2

Rails在Cookie中存儲會話(默認情況下),因此在部署後您不會丟失會話。大多數操作都是無狀態的,只要通過params或url地址(路由)傳遞就可以了。

您的用戶在部署時看到的內容取決於您的服務器和部署策略。

0

你可以看看production.rb環境,爲行

config.cache_classes = true 

如果您有它設置爲false,你會(在某些情況下),可以申請不重新部署的變化(即服務器重啓)。

相關問題