1

我想知道我正在执行什么命令。对于像 rake 这样的大多数命令,都会执行 rails 初始化程序db:migrate, rake db:setup, rails console, rails server

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

您的帮助将不胜感激。谢谢。

4

2 回答 2

2

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

defined?(Rails::Server)

这解决了这个问题。

于 2014-01-31T07:23:22.400 回答
0

您提到的 rake 任务以及大多数与 Rails 相关的任务都取决于environmentrake 任务。这个 rake 任务加载config/environment.rb需要config/application.rb它反过来需要应用程序所需的每个文件和依赖项,包括config/initializers/.

如果你有不应该包含在这个依赖图中的东西,它们可能不属于初始化程序。

拥有“后台工作人员”的一种常见方法是拥有一个单独的 rake 任务并使用诸如foreman之类的库,它将读取 aProcfile来启动多个进程。

一个例子:

app: rails server
workers: rake jobs:work
于 2013-10-02T17:42:28.780 回答