【问题标题】:delayed_job missing methoddelay_job 缺失方法
【发布时间】:2013-10-31 23:54:09
【问题描述】:

我向延迟的作业添加了一个作业,但是当我运行它时出现 NoMethod 错误

延迟::Job.last => #Delayed::Backend::MongoMapper::Job _id: BSON::ObjectId('5266f28aa1cba6257b000001'),尝试次数:0,created_at:周二,2013 年 10 月 22 日 23:47:54 CEST +02:00,failed_at:nil , handler: "--- !ruby/struct:Delayed::PerformableMethod \nobject: !ruby/object:Module {}\n\nmethod: :notify_all_with_review_reminder_due!\nargs: []\n\n", last_error: nil,锁定时间:无,锁定时间:无,优先级:75,运行时间:周二,2013 年 10 月 22 日 23:47:54 CEST +02:00,更新时间:周二,2013 年 10 月 22 日 23:47:54 CEST +02:00>

延迟::Job.last.invoke_job NoMethodError:未定义的方法“notify_all_with_review_reminder_due!”对于#Module:0x124781cf0>

看起来他无法序列化正确的对象(它是一个模块)。 谷歌搜索我发现了在 config/initializers 中需要模块的建议,但这对我不起作用。

有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails ruby delayed-job


    【解决方案1】:

    我遇到了类似的问题,在撰写本文时,除了“require”之外,我还没有找到任何其他解决方案,但在我的情况下,我试图将模块类排队,所以我只是用类将它包装起来,它就可以了现在。 之前:

    module GlobalModule
       def self.some_method
       end
    end
    

    Delayed::Job 在调用GlobalModule::delay.some_method 时失败并出现类似错误

    之后:

    module GlobalModule
       class Wrapper
         def self.some_method
         end
       end
    end
    

    GlobalModule::Wrapper.delay.some_method

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-09
      • 1970-01-01
      • 2017-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多