Ruby on rails RubyonRails使用Sidekiq填充MongoDB数据库

Ruby on rails RubyonRails使用Sidekiq填充MongoDB数据库,ruby-on-rails,ruby,mongodb,mongoid,sidekiq,Ruby On Rails,Ruby,Mongodb,Mongoid,Sidekiq,我正在尝试使用Sidekiq执行一些异步任务。更准确地说,我想在MongoDB集合中插入一些值 不管出于什么原因,它都不起作用 勤劳的人 class HardWorker include Sidekiq::Worker def perform(name) Blog.create(:name => name) end end controller.rb def search if(params[:name].empty?) @blogs = Blo

我正在尝试使用Sidekiq执行一些异步任务。更准确地说,我想在MongoDB集合中插入一些值

不管出于什么原因,它都不起作用

勤劳的人

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]),它可以正常工作。但当我尝试在异步任务中插入文档时,它不会插入任何内容

有什么想法吗

亲切问候,,
雨果

我想说你的环境很糟糕。如某些评论所述,您可能存在以下问题之一:

  • 没有运行sidekiq
  • 代码更改后没有完全重新启动sidekiq
  • sidekiq客户端和服务器在不同的redis下运行

  • 尝试逐一调试上述情况,让我知道问题是否仍然存在。

    如果尚未添加Kiqstand(),您可能需要添加Kiqstand()。redis是否已设置为运行
    默认
    队列?作业是否正在注册?您是否实际在终端中运行Sidekiq?此外,Sidekiq默认情况下会加载环境,因此,如果您进行了更改,则需要重新启动它。我将Sidekiq从Sidekiq更改为Resque,并且它已在工作。无论如何谢谢你!