Redis
 sql >> Database >  >> NoSQL >> Redis

Sidekiq non elabora la coda

Il motivo era nel nostro caso:Sidekiq potrebbe cercare la coda sbagliata. Per impostazione predefinita, Sidekiq utilizza una coda denominata "predefinita". Abbiamo usato due nomi di coda diversi e li abbiamo definiti in config/sidekiq.yml

# configuration file for Sidekiq
:queues:
  - queue_name_1
  - queue_name_2

Il problema è che questo file di configurazione non viene caricato automaticamente per impostazione predefinita nel tuo ambiente di sviluppo (a differenza di database.yml o thinking_sphinx.yml per esempio) con un semplice bundle exec sidekiq comando. Quindi abbiamo scritto i nostri lavori in due determinate code e Sidekiq stava aspettando i lavori in una terza coda (quella predefinita). Devi passare il percorso al file di configurazione come parametro tramite il -C o --config opzione:

bundle exec sidekiq -C ./config/sidekiq.yml

oppure puoi passare direttamente i nomi delle code (non sono ammessi spazi qui dopo la virgola):

bundle exec sidekiq -q queue_name_1,queue_name_2

Per scoprire il problema è utile passare l'opzione -v o --verbose anche dalla riga di comando o per usare :verbose: true nel sidekiq.yml file. Tutto ciò che è definito in un file di configurazione è ovviamente inutile se il file di configurazione non è caricato. Quindi assicurati di utilizzare prima il file di configurazione corretto.