У меня есть приложение Rails, где я должен добавить миллионы поздних платежей за счета-фактуры, которые подлежат оплате.Как запустить пакетное задание одновременно с обновлениями записей?
В настоящее время у меня есть задание Que, которое выполняется один раз в день и выбирает партии счетов-фактур с использованием .find_in_batches(batch_size: 100)
. Я пометил другие общие библиотеки заданий, так как я уверен, что одна и та же проблема переносится. Обратите внимание, однако, что Que поддерживается базой данных, а не при поддержке Redis.
Проблема в том, что именно в этот момент клиент может оплатить свой счет, а поздняя плата будет добавлена в оплаченный счет.
Я не уверен, как смириться с этой разницей исполнительским образом (или любым способом, если быть честным).
Я буду делать это для миллионов строк, поэтому метод должен быть быстрым.
Каковы различные стратегии для этого?
'create_late_fee_for (invoice), если только invoice.paid?' –
Альтернативно ... есть другой процесс, который запускается сразу же после этого, и ищет поздние платежи, созданные после 'invoice.paid_at' date ... и удаляющие поздние версии, если это произошло. –
Можем ли мы увидеть еще немного кода? – Sean