Mam pracownika Sidekiq działa dobrze lokalnie, ale po wdrożeniu do Heroku zadania utknąć w kolejce. Używam Redis-to-go nano i mam je uruchomione, a ja przeskalowałem robotnika na 1 na Heroku i widzę, że jest. Używam tylko domyślnej kolejki - nic niestandardowego ani wymyślnego. Tu jest mój kodu:Praca Sidekiq utknęła w kolejce na Heroku
config/unicorn.rb:
Sidekiq.configure_client do |config|
config.redis = { size: 1, namespace: 'sidekiq' }
end
config/inicjalizatory/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
widzę pracę w w kolejce, ale nie jest to przetwarzanie podobne do lokalnego. Każda rada jest doceniana - dziękuję!
Spróbuj uruchomić 'Heroku uruchomić console' i uruchomić zadanie synchronicznie' SomeWorker.new .perform (some_arg) ', może to oznaczać błąd i zostać przełożony. – Ollie
Cześć, dziękuję za szybką odpowiedź. Uruchomienie w konsoli Heroku wykonało oczekiwane działania (tj. Wygenerowało nowego użytkownika z poprawnymi parametrami); nie widzę jednak żadnych dowodów na to, że działało ono w interfejsie WWW Sidekiq - to znaczy, że nie było ani zakoloryzowane, ani przetworzone. jakieś pomysły? –
Kiedy dostałem go do pracy z konsoli Heroku, po prostu z ciekawości próbowałem uruchomić zadanie synchronicznie z poziomu mojej aplikacji .... Ale zadania wciąż utkną w kolejce, mimo że przekazuję dokładnie te same argumenty . –