首页 文章

Resque的工作在Heroku上给出了“Don 't know how to build task ' jobs:work'”

提问于
浏览
6

我按照https://devcenter.heroku.com/articles/queuing-ruby-resque上的教程在Rails应用程序中排队并运行后台作业 . 排队作业后,似乎没有运行任何作业,因为在控制台中我可以看到作业尚未处理

>Resque.info
=> {:pending=>1, :processed=>0, :queues=>1, :workers=>0, :working=>0, :failed=>0, :servers=>["redis://dory.redistogo.com:9826/0"], :environment=>"production"}

如果我尝试(本地)

bundle exec rake jobs:work

我明白了

rake aborted!
Don't know how to build task 'jobs:work'

在heroku上,如果我尝试

heroku run rake jobs:work

我再次得到“不知道如何 Build 任务”

在我的Rakefile中,我有 require 'resque/tasks' ,在我的Procfile中我有

resque: env TERM_CHILD=1 bundle exec rake jobs:work
resque: env TERM_CHILD=1 bundle exec rake jobs:work

我的Gemfile中有Resque和redis宝石,但不是delayed_job .

Update: 这是我的Rakefile:

#!/usr/bin/env rake
require File.expand_path('../config/application', __FILE__)
Guard::Application.load_tasks

/lib/tasks 是空的 . 我有一个app / worker的 Worker ,我在控制器中入队 .

3 回答

  • 0

    这不会在本地工作 . 你的Rakefile看起来像什么?该文章中的演示应用程序defines one with a Rake task与该任务 . 您是否定义了rake任务并添加了相应的gem参考?

  • 6

    尝试 resque:work 而不是 jobs:work ,看看是否会产生预期的结果 .

  • 0

    您只需要在 Rakefile 中添加 require 'resque/tasks' ,然后在命令行中:

    QUEUE=file_serve rake environment resque:work
    

    file_serve 是你工作的名称(该类将是 FileServeJob ) .

    请参阅文档here - 我发现它们有点令人困惑,因为在创建作业类之后会出现设置和运行信息 .

相关问题