簡體   English   中英

生產中在Nginx和Unicorn上運行的Rails 3應用程序未更新

[英]Rails 3 app running on Nginx and Unicorn in production not updating

我的個人Rails應用程序有一個奇怪的問題。

對於一年多來我一直在運行它使用Nginx的,獨角獸和RVM一個VPS,我不是最好的生產設置窗口,但希望開始變得越來越好於它,所以我跟着Ryan Bates的Railscast關於這個問題在這里它似乎運行了很長時間,但是最近我注意到,為了在添加新文章時刷新首頁,我必須終止Unicorn Process,然后重新啟動unicorn。

還有其他人遇到過這個問題嗎? 如果是這樣,我將如何糾正它?

新答案:

根據您的評論,這很可能不是Unicorn / Nginx問題,而僅僅是Rails在開發和生產之間切換的問題。 嘗試在本地但以生產模式運行站點。

您很可能每次有人發布新文章時都會刪除緩存。 如果流量很大,您將需要緩存,但是忘記重置緩存會導致您遇到的問題。

舊答案:

您是否使用capistrano? 有一套將獨角獸與Capistrano結合使用的食譜。 他們有一個重新加載獨角獸的任務:

https://github.com/sosedoff/capistrano-unicorn/blob/master/lib/capistrano-unicorn/capistrano_integration.rb#L103

在文檔中提到了這一點:

http://unicorn.bogomips.org/SIGNALS.html

HUP-重新加載配置文件並正常重啟所有工作進程。 如果“ preload_app”指令為false(默認設置),則工作程序在重新啟動時還將獲取所有應用程序代碼更改。 如果“ preload_app”為true,則更改應用程序代碼將無效;否則,將不起作用。 在這種情況下,必須使用USR2 + QUIT(請參見下文)加載較新的代碼。 重新加載應用程序時,將調用Gem.refresh,以便應用程序的更新代碼可以獲取新安裝的RubyGems。 不建議您在Unicorn運行時卸載應用程序依賴的庫,因為重新生成的工作程序在無法加載已卸載的依賴項時可能會進入生成循環。

我應該早點回答這個問題,但被誤認為是我被命名為試圖檢查當前日期的作用域,但是當我在做Time.now時,在模型中當前日期始終是與將當前日期/時間從控制器傳遞到示波器的預期效果完全不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM