gpt4 book ai didi

ruby-on-rails - DelayedJob 有时无法加载具有命名空间的作业类

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

有时我在 delayed_job worker 中遇到错误NameError:未初始化常量 Notifiers::MessageNotifierJob完整回溯 https://gist.github.com/olegantonyan/eeca9d612f9a10864efe

Notifiers::MessageNotifierJob 定义在 app/jobs/notifiers/message_notifier_job.rb

有时我的意思是这项工作可能会失败 -> 重试 -> 成功。与另一个具有命名空间的作业相同。没有命名空间的作业工作得很好。

我试图将 app/jobs/ 添加到自动加载路径,但没有任何运气config.autoload_paths += Dir[ Rails.root.join('app', 'jobs', '**/') ]

作业本身是这样的

module Notifiers
class MessageNotifierJob < BaseNotifierJob
def perform(from, to, text)
# some code to send slack notification
end
end
end

最佳答案

已解决。延迟的工作或自动加载器不是罪魁祸首。

在添加这些新工作(如 Notifiers::MessageNotifierJob)之前一周,我增加了延迟工作人员的数量(使用 capistrano3-delayed-job gem)来自1 到 4。但是,capistrano3-delayed-job 并没有杀死旧的延迟工作进程,只是开始了新的 4。所以我最终得到了 1 个旧工作,但对我的新工作类别一无所知。每当这个旧进程选择工作时,它就会失败。然后其中一个新进程选择了这项工作并成功了。

关于ruby-on-rails - DelayedJob 有时无法加载具有命名空间的作业类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33826038/

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