2016-05-26 30 views
1

我有一個capistrano任務,我想在部署期間運行兩次。我該如何運行兩次capistrano任務?

具體而言,我希望在開始部署之前和資產編譯後(capistrano-puma gem的一部分)之前運行puma分階段重新啓動。之前運行分階段重啓的原因是爲了減少內存使用量,以便新資產編譯任務(啓動rails環境)不會導致服務器進入內存交換。我們一直在手動執行此操作,但有時會忘記。

如果我加入這個我部署文件:

before 'deploy:started', "puma:phased-restart"

然後我重新開始分階段只運行一次和美洲獅最終跑出了錯誤的版本目錄。

如何重新啓用capistrano任務並允許其運行兩次?

回答

1

非常類似於運行Rake任務的兩倍,您可以重新啓用任務:

只需添加到您的部署文件

after 'deploy:started', 'reenable_phased_restart' 
task :reenable_phased_restart do 
    ::Rake.application['puma:phased-restart'].reenable 
end 
+1

實際上,因爲capistrano3是基於耙現在,這正是就像運行兩次rake任務一樣,這裏討論https://www.michaelrigart.be/en/blog/rake-basics.html – Rob

相關問題