puma的文檔指示可以使用USR1信號啓動分階段重啓。但我不清楚如何使用這個做滾動重啓。如果我的目錄/ home/abc/rails_app和/ home/abc/rails_app_updated包含了我的代碼的一個副本以及新的更改,是否有想告訴我們新代碼重新啓動時彪馬的方式?我在這方面找不到任何明確的答案。使用Puma零宕機時間部署
回答
Puma在啓動時載入您的代碼,然後您可以刪除導軌應用程序,並且事情仍然會繼續工作(基本上)。所以你可以更新代碼,而彪馬甚至不會注意到。發送USR1信號的功能是讓puma重新加載(新)代碼,同時優雅地處理現有的連接。所以不需要有兩個獨立的目錄,你可以更新代碼。
如果您確實需要分離目錄,您可以只有一個符號鏈接目錄指向您想要成爲當前代碼並且由Puma使用的代碼(capistrano使用此策略,它具有符號鏈接'current'指着最新版本)。然後發送美洲獅USR1,它會重新加載給定目錄中的代碼。
請讓我知道你是否需要更多的指針。
編輯:Probabaly我不是很精確。 Puma實際上並不處理(重新)加載文件,這是由Rails處理的(Puma只啓動Rack應用程序,或者在USR1信號上,將重新啓動應用程序)。在開發模式下,Rails會在每次請求時重新加載文件,這在更改代碼時非常方便。在生產這些設置一般(從config/environments/production.rb
)適用於:
# Code is not reloaded between requests.
config.cache_classes = true
# Eager load code on boot. This eager loads most of Rails and
# your application in memory, allowing both thread web servers
# and those relying on copy on write to perform better.
# Rake tasks automatically ignore this option for performance.
config.eager_load = true
更多細節in the rails guides。
如果你真的想下去拉比索爾可以看看什麼cache_classes
確實在軌道來源,但我不熟悉這一點。
尼爾
第一段非常有用。我找不到任何明確的文件說Puma啓動後更改代碼是安全的,而且是預期的。如果時間允許,我會獎勵賞金。 – user782220
- 1. AWS ELB零宕機時間部署
- 2. Docker零宕機部署
- 3. 零宕機時間部署Nodejs應用程序
- 4. 零前端資源宕機時間部署
- 5. Dokku零宕機部署檢查失敗
- 6. 部署ASP.NET網站和更新MSSQL數據庫,零宕機時間
- 7. 如何通過數據庫模式更改實現零宕機時間部署
- 8. 零宕機asp.net部署和會話狀態問題
- 9. 作爲碼頭集裝箱零宕機部署到天藍色
- 10. tcServer上的零停機時間部署?
- 11. 獨角獸 - 使用HUP零宕機?
- 12. Azure VIP Swap宕機時間
- 13. 如何使用廚師實現零停機時間部署?
- 14. 如何管理Tomcat發佈/部署以使Tomcat6的宕機時間最短
- 15. 用Nginx和Capistrano部署Puma
- 16. node.js應用程序部署使用pm2無宕機
- 17. 獨角獸零宕機不起作用
- 18. 在代碼部署期間實現零停機時間
- 19. 如何部署ASP.NET應用程序以零停機時間
- 20. 針對Java應用程序的零停機時間部署
- 21. 如何監視(非零宕機)Unicorn?
- 22. 如何使用數據庫更新實現零宕機部署到Azure Web應用程序?
- 23. 如何在Node.js中實現零停機時間重新部署
- 24. 從VS2015將WebApp部署到Azure,零停機時間
- 25. 牧場主:我們可以部署零停機時間嗎
- 26. dust.js使熱部署時nodejs零停機時間的可能性如何?
- 27. Slack機器零停機部署
- 28. nginx重載如何工作?爲什麼它是零宕機時間
- 29. 是否可以執行零宕機時間升級或重新配置Mesos?
- 30. 負載均衡nodejs應用程序零宕機部署與nginx服務不同的靜態資產
你有什麼東西跑到彪馬面前?一些像Varnish,nginx,haproxy或類似的反向代理/緩存? –