使用Resque的工作在Heroku上给出了"不知道如何构建任务'工作:工作'"

hig*_*dth 6 ruby rake ruby-on-rails heroku resque

我按照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"}
Run Code Online (Sandbox Code Playgroud)

如果我尝试(本地)

bundle exec rake jobs:work
Run Code Online (Sandbox Code Playgroud)

我明白了

rake aborted!
Don't know how to build task 'jobs:work'
Run Code Online (Sandbox Code Playgroud)

在heroku上,如果我尝试

heroku run rake jobs:work
Run Code Online (Sandbox Code Playgroud)

我再次得到"不知道如何建立任务"

在我的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
Run Code Online (Sandbox Code Playgroud)

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

更新: 这是我的Rakefile:

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

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

Jon*_*joy 6

这似乎与Heroku没有任何关系,如果它不在本地工作.您必须透露一些来源以帮助人们为您提供帮助.例如,你的Rakefile是什么样的?该文章中的演示应用程序定义了一个带有任务的Rake任务.您是否定义了rake任务并添加了相应的gem参考?

  • 哦,我可能需要添加文件lib/tasks/resque.rake和`require'resque/tasks"task"resque:setup"=>:environment`.当我回到电脑上时,我会尝试一下. (8认同)