gpt4 book ai didi

ruby-on-rails - delayed_job 缺少方法

转载 作者:太空宇宙 更新时间:2023-11-03 16:28:54 24 4
gpt4 key购买 nike

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

Delayed::Job.last => #Delayed::Backend::MongoMapper::Job _id: BSON::ObjectId('5266f28aa1cba6257b000001'), attempts: 0, created_at: Tue, 22 Oct 2013 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, locked_at: nil, locked_by: nil, priority: 75, run_at: Tue, 22 Oct 2013 23:47:54 CEST +02:00, updated_at: Tue, 22 Oct 2013 23:47:54 CEST +02:00>

Delayed::Job.last.invoke_job NoMethodError: undefined method `notify_all_with_review_reminder_due!' for #Module:0x124781cf0>

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

有什么想法吗?

最佳答案

我遇到了类似的问题,在写这篇文章的时候,我还没有找到除了“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

关于ruby-on-rails - delayed_job 缺少方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19529263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com