@andreychumak
junior

Почему отваливается воркер после деплоя?

После очередного деплоя отваливается задача sidekiq.

Ошибка: NameError: uninitialized constant DeliveryWorker

в контроллере вызывается DeliveryWorker.perform_async(@invoice.id)

файл delivery_worker.rb расположен в папке app/workers

команда puts ActiveSupport::Dependencies.autoload_paths говорит о том, что в автозагрузку app/workers попадает.

Т.е. по факту сейчас воркер работает. Но только после того, как я перезапустил sidekiq.

Остальные воркеры не отваливаются.

В чем может быть причина того, что воркер отваливается? куда можно посмотреть?

P.S.Эта ошибка должна отработать в контроллере же, я правильно понимаю? ведь DeliveryWorker в контроллере. Т.е. отображаться не в логах sidekiq, а в логах приложения.
  • Вопрос задан
  • 241 просмотр
Пригласить эксперта
Ответы на вопрос 2
Не должна она отработать в контроллере. В этом то и смысл асинхронного выполнения. Он выполняется sidekiq-ом. И ошибка должна быть в логах sidekiq-а. В контроллере лишь создаётся задача для выполнения.

Ошибка: NameError: uninitialized constant DeliveryWorker

Где вызывается эта ошибка?
Ответ написан
@Mox
Team Lead, RoR, React/React Native
Я в таких случаях пытаюсь просто вызвать Worker из Rails консоли
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы