Разделите сценарий на две части - сначала для сбора URL-адресов, а во-вторых, это сценарий оболочки, запускаемый из фона, чтобы вставить URL-адреса в базу данных и извлечь их.
Таким образом, в основном процессследующим образом:
Script1:
- Получает POST
- Вставляет в базу данных
- Вызов сценария 2 с
- shell_exec для запускав фоновом режиме
Script2:
- Получить все URL-адреса из urls_to_download
- Получить URL-адреса (последовательно или параллельно, зависит от вас)
- Делайте вещи с ними
- Сохраняйте их в базу данных.
И все готово.POST в script1 немедленно возвращается, и затем script2 выполняется.Все, что вам остается - это проверить статус (может быть опрос из базы данных через AJAX) для URL, если вы хотите показать некоторую информацию о прогрессе.