我一直在思考這個問題,並且找不到任何東西,所以我打算假設我遇到了XY問題。如何在服務器啓動時運行capistrano任務?
讓我來描述一下我的問題,這聽起來很普遍。
我們使用capistrano
來部署我們的網絡應用和數據庫。相關部分是我們有專門的服務器用於延遲作業,我們使用capistrano
來部署它並啓動/重新啓動進程。這是一個自定義數量的工人,有兩個不同的Gemfile
s和3個隊列。
我想要做的事情是在服務器重新啓動時啓動它們,或者更多地在服務器克隆+啓動時啓動它們。
我試過從服務器本身調用cap production delayed_job:custom_start
..沒有工作。 (這是我的非XY問題調整問題的核心)。不知道它甚至是有道理的。但我想知道這是否可能。 custom_start
是啓動我們工作人員的任務。
或者我想抽象的代碼爲rake
任務或腳本或東西,從兩個capistrano
何地,我需要將它添加到開始啓動時調用它。這是否更有意義?
編輯:剛發現this post ..勸阻..
附:我只是想澄清,當我說服務器我的意思是我的機器/ EC2實例,而不是我的Web應用程序重新啓動。
我試圖做的是給rc本地添加一個capistrano任務,但是謝謝 –
將一個capistrano任務添加到rc.local可能會讓每個服務器都登錄到role:app中的所有其他服務器並執行一些操作。我想你可以把它包裝在run_locally命令中。重點在於它不是rc.local的工具。你必須確定這個盒子是分配給rvm的,capistrano gem是正確安裝的,/ etc/profile是正確的(rc.local不能用配置文件運行)並且調用rc.local的全部行(/ usr/bin /帽本地start_server)或一些這樣的。方式黑客和任何運營類型的人會射擊你。 – Electrawn
哈哈不夠公平 –