Ruby on rails DelayedJob有时无法加载具有命名空间的作业类
有时我在工作中会犯错误Ruby on rails DelayedJob有时无法加载具有命名空间的作业类,ruby-on-rails,ruby,delayed-job,autoload,Ruby On Rails,Ruby,Delayed Job,Autoload,有时我在工作中会犯错误 name错误:未初始化的常量通知程序::MessageNotifierJob 全回溯 Notifiers::MessageNotifierJob在app/jobs/Notifiers/message\u notifier\u job.rb中定义 有时我的意思是,这项工作可能会失败->重试->成功。另一个具有名称空间的作业也是如此。没有名称空间的作业可以正常工作 我试图将app/jobs/显式添加到自动加载路径,但没有任何运气 config.autoload_paths+=
name错误:未初始化的常量通知程序::MessageNotifierJob
全回溯
Notifiers::MessageNotifierJob
在app/jobs/Notifiers/message\u notifier\u 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
模块通知程序
类MessageNotifierJob
已解决。延迟作业或自动加载器不应受到责备
在添加这些新作业(如Notifiers::MessageNotifierJob
)前一周,我已将延迟作业工人的数量(使用capistrano3 delayed job
gem)从1人增加到4人。但是,capistrano3延迟作业并没有终止旧的延迟作业流程,而只是启动了新的4。因此,我最终得到了一份旧工作,对我的新工作类别一无所知。每当这个旧进程选择作业时,它就失败了。然后,一个新进程选择了此作业并成功。这应标记为正确答案。遇到了同样的问题。