理由は私たちの場合でした:Sidekiqは間違ったキューを探すかもしれません。デフォルトでは、Sidekiqは「default」という名前のキューを使用します。 2つの異なるキュー名を使用し、それらをconfig / sidekiq.yml
で定義しました。# configuration file for Sidekiq
:queues:
- queue_name_1
- queue_name_2
問題は、この構成ファイルが自動的にロードされないことです。 デフォルトでは、開発環境では(database.ymlとは異なります) またはthinking_sphinx.yml たとえば)単純なbundle exec sidekiqによる 指図。したがって、2つの特定のキューにジョブを書き込み、Sidekiqは3番目のキュー(デフォルトのキュー)でジョブを待機していました。 -Cを介して、構成ファイルへのパスをパラメーターとして渡す必要があります。 または--config オプション:
bundle exec sidekiq -C ./config/sidekiq.yml
または、キュー名を直接渡すこともできます(ここではコンマの後にスペースを入れないでください):
bundle exec sidekiq -q queue_name_1,queue_name_2
問題を見つけるには、オプション-vを渡すと便利です。 または--verbose コマンドラインでも、または:verbose: trueを使用します sidekiq.yml内 ファイル。もちろん、構成ファイルがロードされていない場合、構成ファイルで定義されているものはすべて役に立ちません。したがって、最初に正しい構成ファイルを使用していることを確認してください。