Sidekiq отлично работает в режиме разработки. Теперь, когда я пытаюсь использовать его в производстве, все задания просто сидят в очереди и никогда не запускаются. Может ли кто-нибудь указать мне в правильном направлении, как решить эту проблему?
Рабочие места Sidekiq застряли в очереди
Ответ 1
Проверьте, действительно ли выполняется процесс sidekiq:
ps aux | grep sidekiq
Если это не так, сначала попробуйте запустить sidekiq на переднем плане и проверьте вывод.
bundle exec sidekiq -e production
Ответ 2
Во многих случаях для меня это потому, что я не правильно объявил очередь для этой конкретной службы в config/sidekiq.yml
.
Ответ 3
Этот ответ выглядит актуальным: Sidekiq не обрабатывает очередь Если Sidekiq не сообщается о файле конфигурации (который может потребовать другого заклинания в процессе производства), то он может не использовать правильную очередь.
Ответ 4
Просто на голову всем, когда я закончил эту страницу, пытаясь выяснить, почему мои рабочие места в Rails Sidkiq не сдвинулись с очереди.
- Проверьте консоль sidekiq в своем терминале
- Моя проблема, которая нападала на меня почти час... да... у меня была точка прерывания "byebug" в коде, который глупо ставить в фоновом режиме. Это полностью испортит вашу работу. Очевидно... Я не хотел ставить эту точку останова там. Клянусь :)
Ответ 5
Мое решение:
1.) Посмотрите на Sidekiq Web UI для своего приложения (здесь вы можете увидеть, что рабочие места попадают в очередь состояние).
2.) Вручную повторить неудавшееся задание
3.) Проверьте журналы на сервере, на котором работает Sidekiq:
(обычно это место, где будет находиться журнал, если вы говорите, что делаете это при постановке)
tail -f /var/www/yourappname/current/log/staging.log
Обычно вы увидите более подробное сообщение об ошибке, почему Sidekiq не может обрабатывать заданные задания. В нашем случае была переменная среды, указывающая на неправильную конечную точку, специфичную для нашей конфигурации развертывания.
Ответ 6
Использование драгоценного камня capistrano-sidekiq
решило нашу проблему