Ruby on rails Sidekiq+;sidekiq_调度程序gem(未初始化的常量worker_类::model)
我正在一个asyc工作线程上工作,该线程按照设定的时间表发送电子邮件。我有很多后端函数都用到了这个函数中,但我已经建立了一个模型来管理每封电子邮件的数据。该模型在我们的多租户数据库中循环遍历所有租户,抓住所有用户,并在每天午夜后一分钟为他们定制电子邮件。我用宝石 但是,当我通过sidekiq_调度程序设置工作线程时,会出现以下错误: NameError:未初始化的常量RecurringMailer::EmailScheduler /../lib/tasks/recurtive_mailer.rb:6:in'perform' 这是我的工人类RecurringMailer(lib/tasks/recurtive_mailer.rb) 当工作线程尝试首先从EmailScheduler.daily_scheduler上的模型访问该方法时,会引发错误 以下是EmailScheduler模型(app/assets/models/email_scheduler.rb)的基本shell 当我启动服务器时,我运行Ruby on rails Sidekiq+;sidekiq_调度程序gem(未初始化的常量worker_类::model),ruby-on-rails,ruby,sidekiq,Ruby On Rails,Ruby,Sidekiq,我正在一个asyc工作线程上工作,该线程按照设定的时间表发送电子邮件。我有很多后端函数都用到了这个函数中,但我已经建立了一个模型来管理每封电子邮件的数据。该模型在我们的多租户数据库中循环遍历所有租户,抓住所有用户,并在每天午夜后一分钟为他们定制电子邮件。我用宝石 但是,当我通过sidekiq_调度程序设置工作线程时,会出现以下错误: NameError:未初始化的常量RecurringMailer::EmailScheduler /../lib/tasks/recurtive_mailer.rb
bundle exec sidekiq -r ./lib/tasks/recurring_mailer.rb
关于如何让我的模型与sidekiq工作人员很好地配合,你有什么想法吗?如果你想访问你的模型,你不应该使用-r标志运行sidekiq。以下是医生对此的看法: -r、 --require[PATH | DIR]Rails应用程序的位置以及需要的工人或文件 如果要加载整个应用程序,只需按以下方式运行:
bundle exec sidekiq
module MySite
class Application < Rails::Application
config.autoload_paths += %W(#{config.root}/lib)
config.autoload_paths << Rails.root.join('app', 'field_types')
config.active_job.queue_adapter = :sidekiq
end
end
:schedule:
recurring_mailer:
cron: '1 0 * * *'
class: RecurringMailer
bundle exec sidekiq -r ./lib/tasks/recurring_mailer.rb
bundle exec sidekiq