我按照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 回答
这不会在本地工作 . 你的Rakefile看起来像什么?该文章中的演示应用程序defines one with a Rake task与该任务 . 您是否定义了rake任务并添加了相应的gem参考?
尝试
resque:work
而不是jobs:work
,看看是否会产生预期的结果 .您只需要在
Rakefile
中添加require 'resque/tasks'
,然后在命令行中:file_serve
是你工作的名称(该类将是FileServeJob
) .请参阅文档here - 我发现它们有点令人困惑,因为在创建作业类之后会出现设置和运行信息 .