延迟的工作耙任务失败 [英] Delayed Job Rake Task Failing
问题描述
我正试图推迟工作以完成一项繁重的任务,但是对于我一生来说,我无法弄清自己做错了什么。给定以下设置:
I'm trying to get delayed job to work as a rake task, but for the life of me I can't figure out what I'm doing wrong. Given the following setup:
#config/environment.rb
Rails::Initializer.run do |config|
config.gem 'delayed_job'
end
#Rakefile
begin
require 'delayed/tasks'
rescue LoadError
STDERR.puts "Run `rake gems:install` to install delayed_job"
end
#Observer
class SomeObserver < ActiveRecord::Observer
def foo(bar)
end
handle_asynchronously :foo
end
每当我运行rake作业时:清除我会收到以下错误:
Whenever I run rake jobs:clear I get the following error:
undefined method `handle_asynchronously' for SomeObserver:Class
即使在运行测试时没有出现此错误案件或直接。有想法吗?
Even though I don't get this error when I'm running the test cases or it directly. Any ideas?
推荐答案
DelayedJob在 handle_asynchronously > Delayed :: MessageSending :: ClassMethods
。 DelayedJob自动将该模块猴子修补到其 lib / delayed_job.rb
中的 Module
中。您可能会在Rake任务中有更好的要求:
DelayedJob defines handle_asynchronously
in Delayed::MessageSending::ClassMethods
. DelayedJob automatically monkey-patches that module into Module
in its lib/delayed_job.rb
. You'll likely have better luck requiring that in your Rake task:
#Rakefile
begin
require 'delayed_job'
require 'delayed/tasks'
rescue LoadError
STDERR.puts "Run `rake gems:install` to install delayed_job"
end
这篇关于延迟的工作耙任务失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!