У меня в базе данных postgres около 1,5 млн. Данных, которые мне нужно переиндексировать.Я использовал метод find_each в ActiveRecord в одном работнике sidekiq, чтобы передать эти объекты другому работнику, который выполняет переиндексацию для каждого объекта.
worker1
# Perform in batch of 200 in 2 minutes.
type.find_each(batch_size: 200) do |object|
Elasticsearch::Worker2.perform_in(2.minutes, :index, type, object.id, "new_index_name")
end
worker2
def index_object(object, index_name)
object.__elasticsearch__.index_document(index: index_name)
end
Но я столкнулся со следующей проблемой:
[429] {"code":429,"message":"Concurrent request limit exceeded. Please consider batching your requests, or contact support@bonsai.io for help."}
Кто-нибудь знает, как сделать пакетные запросы, используя рельсы эластичного поиска?