1

我的 Rails 应用程序有一个“实时测试”环境,可以让我们使用接近真实的生产设置(电子邮件是真实发送的,等等)来测试我们的应用程序。

我在这个“实时测试”网站上添加了一些按钮,可以让我们快速清除集合(即从 MongoDB 集合中删除所有文档)

 def purge
    if Rails.env.production?
      should_not_happen(severity: :armageddon)
    else
      Company.unscoped do
        Company.all.each(&:destroy)
      end
      Utility.seed
      flashy(:info, 'company XXX restored')
      redirect_back
    end
  end

ElasticSearch 出现了问题。第一次调用此清除方法时,它工作正常,我有一些错误

Elasticsearch::Transport::Transport::Errors::NotFound in MyController#purge

如果我在浏览器上单击刷新几次,经过 2-3 次请求最终被接受,但我又遇到了同样的问题:

# 1st time executing purge action : Works
# 2nd time : [404] {"found":false,"_index":"professionals-test","_type":"employee","_id":"57221655f5ae457700b464a2","_version":4}
# 3rd time : [404] {"found":false,"_index":"professionals-test","_type":"employee","_id":"57221655f5ae457700b464a5","_version":6}
# 4th time : [404] {"found":false,"_index":"professionals-test","_type":"employee","_id":"57221655f5ae457700b464a7","_version":4}
# 5th Time : Works
# 6th refresh : Again errors....

我将 AWS ElasticSearch 服务与经典的 elasticsearch ruby​​ gem 一起使用。

4

0 回答 0