У меня есть работник Sidekiq, хорошо работающий локально, но при развертывании в Heroku задания застревают в очереди. Я использую Redis-to-go nano и запускаю его, и я увеличил рабочий до 1 на Heroku и вижу, что он работает. Я просто использую очередь по умолчанию - ничего нестандартного или необычного. Вот мой код:Рабочие места Sidekiq застревают в очереди на Heroku
конфигурации/unicorn.rb:
Sidekiq.configure_client do |config|
config.redis = { size: 1, namespace: 'sidekiq' }
end
конфигурации/Инициализаторы/redis.rb
uri = URI.parse(ENV["REDISTOGO_URL"] || "redis://localhost:6379")
REDIS = Redis.new(:url => ENV['REDISTOGO_URL'])
PROCFILE
web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb
worker: bundle exec sidekiq -c 5 -v -q default
Я вижу работу очередь, но она не обрабатывается, как локально. Любые советы очень ценятся - спасибо!
Попробуйте запустить 'Heroku запустить console' и запустить работу синхронно' SomeWorker.new .perform (some_arg) ', это может вызвать ошибку и перепланировать. – Ollie
Привет, спасибо за быстрый ответ. Запуск в консоли heroku выполнил ожидаемые действия (т. Е. Он сгенерировал нового пользователя с правильными параметрами); однако я не вижу никаких доказательств того, что он работал в веб-интерфейсе Sidekiq, т. е. он не был закрыт, но не был обработан. Есть предположения? –
Как только я получил его для работы с консолью heroku, просто из любопытства я попытался запустить работу синхронно из своего приложения .... Но задания все еще застревают в очереди, хотя я передаю одни и те же аргументы , –