簡體   English   中英

Rails-way在Rails服務器啟動時執行一次性任務

[英]Rails-way to execute one-off task on Rails server startup

我有Rails 4.2應用程序,我想在服務器啟動時執行一些一次性代碼。

我的第一種方法是在config/initializers使用初始化config/initializers來運行代碼。 但是在這種情況下,所有rake任務和Sidekiq進程也將執行代碼。

因此,我創建了一個rake任務來運行我的代碼。 現在,我想知道如何與Rails服務器啟動一起執行它。 當然,我可以創建一個Shell腳本來執行我的rake任務,然后啟動服務器。 但是,有沒有實現這一目標的途徑?

領班是SO 建議的另一種方法,但是它對我不起作用,因為我的任務不是守護程序,並且該過程在完成后立即終止。 顯然,Procfile中的所有進程都必須守護。

可以使用Foreman通過與守護程序任務相同的進程運行(例如,使用rails server )來實現。

如果一次性任務是rake lego:update_all

然后相應的Procfile是

web: rake lego:update_all && rails s
sidekiq: bundle exec sidekiq

暫無
暫無

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

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