在我们执行rake db:migrate时理解Rails初始化

时间:2013-10-02 17:32:45

标签: ruby-on-rails ruby-on-rails-4

我想知道我正在执行什么命令。对于大多数命令(例如rake db:migrate, rake db:setup, rails console, rails server

执行rails初始值设定项

这个问题的原因是我在rails初始化期间使用Rufus-scheduler开始调度一些作业。不幸的是,所有这些初始化程序在执行rails console或rake db:migrate时也会被执行。我只想在执行rails server时安排工作。

我们将不胜感激。感谢。

2 个答案:

答案 0 :(得分:2)

当我只想在运行服务器时安排作业时,以下命令有助于理解我们正在运行服务器。

defined?(Rails::Server)

这解决了这个问题。

答案 1 :(得分:0)

您提到的rake任务以及大多数与Rails相关的任务取决于environment rake任务。此rake任务加载config/environment.rb,这需要config/application.rb,而config/initializers/又需要应用程序所需的每个文件和依赖项,包括Procfile下的初始化程序。

如果您有不应包含在此依赖关系图中的内容,则它们可能不属于初始值设定项。

拥有“后台工作人员”的常用方法是使用单独的rake任务并使用foreman等库,该库将读取app: rails server workers: rake jobs:work 以启动多个进程。

一个例子:

{{1}}