Rails-在Rails服务器启动时执行一次性任务的方式

时间:2015-06-03 06:24:17

标签: ruby-on-rails ruby rake foreman

我有Rails 4.2应用程序,我想在服务器启动时执行一些一次性代码。

我的第一种方法是在config/initializers中使用初始化程序来运行代码。但在这种情况下,代码也正在执行所有rake任务和Sidekiq进程。

所以我创建了一个rake任务来运行我的代码。现在我想知道如何与rails服务器启动一起执行它。当然,我可以创建一个shell脚本来执行我的rake任务,然后启动服务器。但有没有实现这一目标的轨道?

Foreman是SO的另一种方法advised,但它对我不起作用,因为我的任务不是守护进程,并且该进程在完成后立即终止。显然,Procfile中的所有进程都必须进行守护。

1 个答案:

答案 0 :(得分:0)

可以通过在与守护任务相同的过程中运行Foreman来实现(例如使用rails server)。

如果一次性收入是rake lego:update_all

然后相应的Procfile是

web: rake lego:update_all && rails s
sidekiq: bundle exec sidekiq
相关问题