Der Grund war in unserem Fall:Sidekiq sucht möglicherweise nach der falschen Warteschlange. Standardmäßig verwendet Sidekiq eine Warteschlange namens „default“. Wir haben zwei verschiedene Warteschlangennamen verwendet und sie in config/sidekiq.yml
definiert# configuration file for Sidekiq
:queues:
- queue_name_1
- queue_name_2
Das Problem ist, dass diese Konfigurationsdatei nicht automatisch geladen wird standardmäßig in Ihrer Entwicklungsumgebung (im Gegensatz zu database.yml
oder thinking_sphinx.yml
zum Beispiel) durch ein einfaches bundle exec sidekiq
Befehl. Daher haben wir unsere Jobs in zwei bestimmte Warteschlangen geschrieben, und Sidekiq wartete auf Jobs in einer dritten Warteschlange (der Standardwarteschlange). Sie müssen den Pfad zur Konfigurationsdatei als Parameter über das -C
übergeben oder --config
Möglichkeit:
bundle exec sidekiq -C ./config/sidekiq.yml
oder Sie können die Queue-Namen direkt übergeben (hier sind keine Leerzeichen nach dem Komma erlaubt):
bundle exec sidekiq -q queue_name_1,queue_name_2
Um das Problem herauszufinden, ist es hilfreich, die Option -v
zu übergeben oder --verbose
auch auf der Kommandozeile oder mit :verbose: true
in der sidekiq.yml
Datei. Alles, was in einer Konfigurationsdatei definiert ist, ist natürlich nutzlos, wenn die Konfigurationsdatei nicht geladen ist. Stellen Sie daher zuerst sicher, dass Sie die richtige Konfigurationsdatei verwenden.