好的,我知道这里发生了什么,这是我的错。由于在使用 Zeitwerk 自动加载器时不再需要,我移除了许多 require_dependency。
不过,在 application.rb 中我们有这段代码:
if !Sidekiq.server?
config.autoload_paths += Dir["#{config.root}/lib"]
end
这意味着 Sidekiq 不会在 lib 目录中查找依赖项,我们需要在特定文件中显式声明所需的依赖。
我可以为 Sidekiq 使用的文件恢复 require_dependency,或者移除 application.rb 中的这个保护条件。
我想我们之前使用显式 require 是为了节省 worker 的内存,所以可能应该遵循这个方向。我会把 require_dependency 加回来。
@sam 你怎么看?