2

我想在启动开发服务器时启动我的工作人员以测试我在 resque 调度程序中的新 cron 作业,因此我在启动开发服务器时运行此命令-

QUEUE=* rake environment resque:work rails s

它以前对我有用,如果我正确阅读他们的文档应该仍然有效。

但是我在挂断后中断它后出现以下错误-

^Crake aborted!
Don't know how to build task 'rails'

这是我在键盘中断并运行它后得到的--trace

** Invoke environment (first_time)
** Execute environment
** Invoke resque:work (first_time)
** Invoke resque:preload (first_time)
** Invoke resque:setup (first_time)
** Invoke environment
** Execute resque:setup
** Execute resque:preload
** Invoke resque:setup
** Execute resque:work
^Crake aborted!
Don't know how to build task 'rails'

我不明白为什么我会收到错误,以及为什么它以前加载和工作但现在没有了。我在这里想念什么?

4

2 回答 2

5

你确定你设法在某个时候成功地运行这个命令吗

QUEUE=* rake environment resque:work rails s

因为我知道的方式rails s是 rails 命令列表而不是 rake 任务

您可以运行连续的 rake 分隔空间,例如

QUEUE=* rake environment rake1 rake2 rake3

但是你不能像上面提到的那样运行 rake 和 rails 命令

我从您上面的跟踪中看到 rake( resque rake ) 现在正在运行,而不是传递第二个 rake 您指定了一个rails 命令来启动服务器 rake 正在考虑将其视为 rake 任务(这是不正确的)

我相信你正在寻找这个

QUEUE=* rake environment resque:work && rails s

但我不相信你提到的东西会起作用,如果这里有冲突,请告诉我

希望有意义

于 2013-04-01T13:30:21.900 回答
4

这个更好:

BACKGROUND=yes QUEUE=* PIDFILE=./tmp/resque.pid bundle exec rake environment resque:work

然后:

rails s

如果您需要停止 resque 工作人员:

kill -QUIT $(cat ./tmp/resque.pid)
于 2014-10-11T13:32:36.103 回答