У меня есть некоторый код, который проходит через отношение Active Record. Каждый цикл выполняет вызов API и, в зависимости от результата, обновляет флаг «exported» в базе данных. Конечная точка API, к которой он обращается, записывает каждый запрос, полученный от этого процесса, в свою собственную базу данных. Он записывает дубликаты записей в свою базу данных, что говорит мне, что мой процесс как-то заставляет вызов API несколько раз для одной и той же записи.
Давайте назовем рельсы моделями Orders.
Orders.where(exported: false).find_each do |o|
//call api
//depending on result update "exported" column
o.update(exported: true)
end
Может ли find_each каким-то образом получать одну и ту же запись из базы данных более одного раза при попытке оптимизировать размеры пакетов?