延迟的工作耙任务失败 [英] Delayed Job Rake Task Failing

查看:38
本文介绍了延迟的工作耙任务失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正试图推迟工作以完成一项繁重的任务,但是对于我一生来说,我无法弄清自己做错了什么。给定以下设置:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆