Ho un lavoratore Sidekiq che funziona bene localmente, ma quando è schierato su Heroku i lavori rimangono bloccati in coda. Sto usando Redis-to-go nano e ho installato e funzionante, e ho ridimensionato il lavoratore a 1 su Heroku e posso vedere che è attivo. Sto solo usando la coda di default - niente di personalizzato o di fantasia. Ecco il mio codice:Lavori di sidekiq bloccati in coda su Heroku
config/unicorn.rb:
Sidekiq.configure_client do |config|
config.redis = { size: 1, namespace: 'sidekiq' }
end
config/inizializzatori/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
posso vedere il lavoro in la coda ma non viene elaborata come avviene a livello locale. Qualche consiglio è molto apprezzato - grazie!
provare a eseguire 'Heroku gestita console' ed eseguire il tuo lavoro in modo sincrono' SomeWorker.new .perform (some_arg) ', potrebbe generare un errore e riprogrammare. – Ollie
Ciao, grazie per la rapida risposta. L'esecuzione nella console di heroku ha eseguito le azioni che mi aspettavo (cioè ha generato un nuovo utente con i parametri corretti); tuttavia, non riesco a vedere alcuna prova del fatto che abbia funzionato nell'interfaccia utente Web Sidekiq, ovvero non è stato né accodato né elaborato. qualche idea? –
Una volta ottenuto il lavoro dalla console di heroku, solo per curiosità ho provato a eseguire il lavoro in modo sincrono dall'interno della mia app .... Ma i lavori rimangono bloccati nella coda anche se sto passando gli stessi argomenti . –