Rails 5.2.3: планировщик Sidekiq выдает NameError: неинициализированная константа в производственной среде

В моем приложении Rails 5.2.3 у меня есть config/sidekiq.yml, который выглядит так:

:verbose: true
:concurrency: 30
:queues:
  - [mailers, 7]
  - [critical, 6]
  - [default, 5]
  - [low, 4]

:logfile: ./log/sidekiq.log

:schedule:
  ScheduledNotices:
    queue: low
    cron: '0 0 * * * *' # every hour

Мой ScheduledNotices помещен в lib\scheduled_notices.rb

На данный момент в среде разработки Scheduler работает должным образом, однако в процессе производства я получаю эту ошибку : NameError: uninitialized constant ScheduledNotices

В моем application.rb у меня есть:

config.autoload_paths += %W(#{config.root}/lib)

Что я делаю не так, пожалуйста?


person matiss    schedule 28.05.2019    source источник


Ответы (1)


Это может быть связано с проблемой автозагрузки пути, подробнее см. Здесь: https://github.com/rails/rails/issues/13142#issuecomment-275492070

Что вам следует сделать, так это изменить:

config.autoload_paths += %W(#{config.root}/lib)

to

config.eager_load_paths << Rails.root.join('lib')
person nuaky    schedule 28.05.2019
comment
Спасибо, похоже, это решение. - person matiss; 28.05.2019