denisOg
Новичок
Есть задача обработать большие данные (две связанные таблицы по 1 млн записей). Обработать, в смысле сделать математ просчеты,
и записать в новые таблицы результаты.
Сделал следующим образом:
-- распаралелил процессы(один парсер), так как очень долго выполняется один просчет.
-- запускаю последовательно пять парсеров (пять классов).
Запускаю через exec() и sleep(mt_rand(1,10)) в несколько потоков каждй скрипт.
При распаралеливании возникла проблема, что парсеры дублируют данные, которые будут обрабатывать. Следовательно,
нужно что бы каждый парсер бронировал за собой записи. Потом появилась потребность в очередях, так как,
все равно получается дублирование. Очереди создал через файл. При начале бронирования в конец файла пишется случайный хеш
и потом через do {}while(пока мой хеш не будет первыйм в списке - ждать, а как будет первым удалить хеш из файла).
Мне кажется, что я сделал сложно и не опытно. Посоветуйте, может можно использовать новые технологии или по более простому?
и записать в новые таблицы результаты.
Сделал следующим образом:
-- распаралелил процессы(один парсер), так как очень долго выполняется один просчет.
-- запускаю последовательно пять парсеров (пять классов).
Запускаю через exec() и sleep(mt_rand(1,10)) в несколько потоков каждй скрипт.
При распаралеливании возникла проблема, что парсеры дублируют данные, которые будут обрабатывать. Следовательно,
нужно что бы каждый парсер бронировал за собой записи. Потом появилась потребность в очередях, так как,
все равно получается дублирование. Очереди создал через файл. При начале бронирования в конец файла пишется случайный хеш
и потом через do {}while(пока мой хеш не будет первыйм в списке - ждать, а как будет первым удалить хеш из файла).
Мне кажется, что я сделал сложно и не опытно. Посоветуйте, может можно использовать новые технологии или по более простому?