我想知道我正在执行什么命令。对于大多数命令(例如rake db:migrate, rake db:setup, rails console, rails server
。
这个问题的原因是我在rails初始化期间使用Rufus-scheduler开始调度一些作业。不幸的是,所有这些初始化程序在执行rails console
或rake db:migrate
时也会被执行。我只想在执行rails server
时安排工作。
我们将不胜感激。感谢。
答案 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}}