【发布时间】:2011-05-31 22:31:22
【问题描述】:
我有一个新的 rails 3 应用,这是我的 Gemfile:
source 'http://rubygems.org'
gem 'rails', '3.0.0' gem 'delayed_job'
gem 'sqlite3-ruby', :require => 'sqlite3'
这是代表我要排队的作业的类:
class Me < Struct.new(:something)
def perform
puts "Hello from me"
logger.info "Hello from me"
logger.debug "Hello from me"
raise Exception.new
end
end
从没有工人运行的控制台:
irb(main):002:0> Delayed::Job.enqueue Me.new(1)
=> #<Delayed::Backend::ActiveRecord::Job id: 7, priority: 0, attempts: 0, handler: "--- !ruby/struct:Me \nsomething: 1\n", last_error: nil, run_at: "2010-12-29 07:24:11", locked_at: nil, failed_at: nil, locked_by: nil, created_at: "2010-12-29 07:24:11", updated_at: "2010-12-29 07:24:11">
就像我提到的:没有工人在运行:
irb(main):003:0> Delayed::Job.all
=> [#<Delayed::Backend::ActiveRecord::Job id: 7, priority: 0, attempts: 0, handler: "--- !ruby/struct:Me \nsomething: 1\n", last_error: nil, run_at: "2010-12-29 07:24:11", locked_at: nil, failed_at: nil, locked_by: nil, created_at: "2010-12-29 07:24:11", updated_at: "2010-12-29 07:24:11">]
我用script/delayed_job run开始一个工人
队列被清空:
irb(main):006:0> Delayed::Job.all
=> []
但是,puts 不会导致任何事情发生,logger 调用不会记录任何内容,并且不会引发异常。我将不胜感激任何帮助/见解或任何尝试。
【问题讨论】:
-
我遇到了完全相同的问题。你有没有解决过这个问题?
标签: ruby-on-rails ruby-on-rails-3 delayed-job