Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails DelayedJob有时无法加载具有命名空间的作业类_Ruby On Rails_Ruby_Delayed Job_Autoload - Fatal编程技术网

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。因此,我最终得到了一份旧工作,对我的新工作类别一无所知。每当这个旧进程选择作业时,它就失败了。然后,一个新进程选择了此作业并成功。

这应标记为正确答案。遇到了同样的问题。