我的 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 一起使用。