任何人都知道通過capistrano以「滾動」方式重新啓動雜種羣的好方法,例如每次一把雜種犬。如果在這裏有一些等待時間,讓這部雜種加載導軌應用程序,那將是非常棒的。如何滾動重新啓動一羣雜種狗
我已經做了一些搜索,並沒有找到太多,所以尋求幫助之前,我自己深入到mongrel_cluster寶石。
謝謝!
任何人都知道通過capistrano以「滾動」方式重新啓動雜種羣的好方法,例如每次一把雜種犬。如果在這裏有一些等待時間,讓這部雜種加載導軌應用程序,那將是非常棒的。如何滾動重新啓動一羣雜種狗
我已經做了一些搜索,並沒有找到太多,所以尋求幫助之前,我自己深入到mongrel_cluster寶石。
謝謝!
蹺蹺板是在Rails Oceania Rubyforge Project中發現的一種寶石,它爲混雜羣集提供了這種功能。然而,該項目有可能從某些位腐不havain患上了自2007年以來還是值得一看釋放甚至只是掐想法:)
#!/bin/bash
for PIDFILE in /tmp/mongrel.*; do
PID=$(cat ${PIDFILE})
kill ${PID}
${RUN_MONGREL_CMD} ${PID}
sleep 2
done
我蹺蹺板的方式同意以上軋製方法你在尋找。問題在於,在轉換時,負載均衡可能會在不同版本的應用程序之間來回傳遞用戶,最終導致這種情況。
我們提出的解決方案(在找到SeeSaw之前,我們不使用它們)是從負載平衡器中將一半的雜種離線。關閉它們。更新它們。啓動它們。將這些雜種狗重新放回負載平衡器中,並將另一半放回。關閉下半場。更新下半場。啓動它們。這極大地縮短了您同時運行兩個不同版本的應用程序的時間。 我寫了一個windows bat文件來做到這一點。 (不建議在Windows上部署,順便說一下)
請注意,數據庫遷移可能會使整個方法有點危險,這一點非常重要。如果您只有附加遷移,則可以在部署之前隨時運行這些遷移。如果要刪除列,則需要在部署後執行。如果要重命名列,最好將其分爲創建新列和將數據複製到其中的遷移,以便在部署之前運行,並使用單獨的腳本在部署後刪除舊列。事實上,如果你沒有做出特定的努力來組織它們,通常在生產數據庫上使用你的定期遷移可能是危險的。所有這些都意味着更頻繁的交付,因此每次更新的風險較低,複雜程度較低,但這是另一個迴應的主題。
感謝馬特,是的,我沒有想到提及它,但我肯定會犯錯安全的一面,幾乎任何遷移只是做一個更完整的關機 - 遷移 - 啓動 – 2008-09-25 05:07:14