0

Sidekiq を使用していくつかの非同期タスクを実行しようとしています。より正確には、MongoDB コレクションにいくつかの値を挿入したいと考えています。

何らかの理由で機能していません。

hard_worker.rb

class HardWorker
  include Sidekiq::Worker

  def perform(name)
      Blog.create(:name => name)
  end
end

controller.rb

def search  
  if(params[:name].empty?)
    @blogs = Blog.all
  else
    @blogs = Blog.where(name: params[:name])
    if(@blogs.empty?)
      HardWorker.perform_async(params[:name])
    end
   end
end

controller.rb に Blog.create(params[:name]) を挿入すると、正常に動作します。しかし、非同期タスクにドキュメントを挿入しようとすると、何も挿入されません。

何か案が?

敬具、ヒューゴ

4

1 に答える 1

0

悪い環境が構成されていると思います。いくつかのコメントで述べたように、次のいずれかの問題が発生している可能性があります。

  1. sidekiq を実行していない
  2. コード変更後、sidekiq を完全に再起動しませんでした
  3. sidekiq クライアントとサーバーは異なる redis で実行されています。

上記のケースを 1 つずつデバッグしてみて、問題が解決しないかどうかを確認してください。

于 2013-09-03T13:54:09.160 に答える