在Rails中设置Resque

时间:2012-10-28 05:32:14

标签: ruby-on-rails-3 resque

在Rails中第一次设置Resque时,我收到一个错误。在最终部署到Heroku之前,我正在使用Foreman和Procfile在本地启动我的应用程序。当我尝试启动我的应用程序时,Redis和我的PostgreSQL数据库已经运行。错误是:

$ foreman start
...
23:24:32 resque.1 | rake aborted!
23:24:32 resque.1 | No such file to load -- bootstrap_flash_helper
23:24:32 resque.1 | Tasks: TOP => resque:work => resque:preload
23:24:32 resque.1 | (See full trace by running task with --trace)
23:24:32 resque.1 | exited with code 1
...

我的应用程序确实使用了Bootstrap,但我并没有在使用Rescue的任何类中明确要求它。我的Rakefile和Procfile是:

Procfile

web: bundle exec rails server -p $PORT
resque: env TERM_CHILD=1 RESQUE_TERM_TIMEOUT=10 bundle exec rake resque:work

Rake文件

require File.expand_path('../config/application', __FILE__)
require 'resque/tasks'

task "resque:setup" do
  ENV['QUEUE'] = '*'
end

task "jobs:work" => "resque:work"

MyCoolApp::Application.load_tasks

2 个答案:

答案 0 :(得分:3)

只需使用

bundle exec rake environment resque:work

这对task "resque:preload" => :environment也是如此。

运行任务时

需要当前环境:p

答案 1 :(得分:2)

我不完全理解这一点,但想要记录它,以防它帮助某人。我需要这一行:

task "resque:preload" => :environment

在我的Rakefile中,在require语句之后。如果有人知道这是如何工作的,请澄清!