Задача: Eсть родительский процесс который ставит задачи, то есть говорит что нужно обработать 1000 и оправляет это дочернему процессу который уже занимается обработкой, одновременно может работать до 10 дочерних процессов, после отработки дочерний процесс умирает и за место него появляется новый, длится до тех пор пока все записи не будут обработаны.
Есть необходимость обойти асинхронно 200 тысяч записей и после обработки 1 записи изменить ключ что запись уже была обработана.
На данный момент все записи обрабатываются кусками по 2000 записей.
Использую в примере псевдо язык программирования что-бы не грузить лишним кодом, но на бою использую php, но также задача есть и для Python
То есть получаеться такой код:
count = "SELECT COUNT(*) as count FROM purchas WHERE status = 0;"
step = 2000
max = step
for (min = 1; min < count; min+=step) {
// Дальше идет асинхронный код
while(row = "SELECT * FROM purchas WHERE status = 0 LIMIT $min, $max;"){
"UPDATE purchas SET status = 1 WHERE id = $row['id'];"
}
}
Но логично обход буден не последовательный из-за того что вы меняет status и вопрос как можно это реализовать методами SQL?
Возможно я не корректно задал вопрос.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости