PHP скрести и скачивать файлы с URL с интервалом

Я построил скребок, чтобы получить данные с другого сайта. В настоящее время скребок выполняется в командной строке на экране, поэтому процесс никогда не останавливается. Между каждым запросом я устанавливал интервал, чтобы все было спокойно. В одном отчете может быть 100 файлов, которые необходимо скачать. Также этот процесс имеет интервал после каждой загрузки.

Теперь я хочу добавить функциональность в бэк-энде, чтобы скрести на лету. Все отлично работает, я получаю первый набор данных, который имеет только 2 запроса. В пределах этих возвращенных данных я должен загрузить массив с файлами (может быть 10, может быть +100). Я хотел бы создать что-то, что пользователь сможет видеть в реальном времени, насколько далеко процесс загрузки.

С чем сталкиваюсь, когда у скребка есть 2 задания в окне браузера с до +20 загрузками, включая интервалы, чтобы держать вещи в тупике, это займет слишком много времени. Я думаю о том, чтобы сохранить файлы, необходимые для загрузки в таблицу базы данных, и обработать эту часть процесса обработки данных с помощью другого сценария оболочки (экрана) или cronjob.

Я задаюсь вопросом о том, насколько мои мысли хороши, излишни или есть какие-то лучшие примеры для обработки подобных процессов.

Спасибо за любой совет.

постскриптум Я занимаюсь разработкой на PHP

-1

Решение

Если вы считаете, что это излишне, вы можете запустить скрипт и подождать, пока задача будет завершена, прежде чем запускать снова.

0

Другие решения

В основном вам нужно реализовать очередь сообщений где обработчик запросов http (фронт-контроллер?) отправляет сообщение для извлечения страницы, и один или несколько рабочих выполняют работу, дополнительно отправляя в очередь больше сообщений для загрузки файлов.

Существует множество брокеров MQ, но вы можете реализовать свой собственный с базой данных в качестве хранилища очередей.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector