Как find_each обрабатывает обновления базы данных во время цикла - PullRequest
0 голосов
/ 16 мая 2019

У меня есть некоторый код, который проходит через отношение 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 каким-то образом получать одну и ту же запись из базы данных более одного раза при попытке оптимизировать размеры пакетов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...