У меня есть сценарий php, который проверяет, является ли адрес электронной почты все еще действительным с SMTP HELO, мы помечаем этот адрес как действительный в отдельном CSV и затем отправляем новейшее предложение, которое у нас есть (если пользователь, конечно, запросил это). Адреса берутся из txt файла, где они спрятаны строка за строкой.
Таким образом, поток сценария выглядит так: откройте файл txt, возьмите все строки и поместите его в массив, переберите каждую запись в массиве и отправьте SMTP HELO, отметьте как действительный / недействительный в отдельном CSV, отправьте электронное письмо на действительный.
У нас часто более 2000 записей в каждом исходном текстовом файле. К сожалению, я никогда не пропускал 400-ю запись, так как мой CloudFlare или nginx дают мой тайм-аут.
Я пробовал выполнить следующую настройку внутри моего php сценария:
set_time_limit(0); // ignore php timeout
ignore_user_abort(true); // keep on going even if user pulls the plug*
while(ob_get_level())ob_end_clean(); // remove output buffers
ob_implicit_flush(true); // output stuff directly
и некоторые другие " хакерский "asyn c подходит, но результат всегда один и тот же.
Я думал о том, чтобы" нарезать "мои входные данные на вводы безопасного размера и обрабатывать один файл за другим с перезагрузкой страницы в это время, но я Понятия не имею, стоит ли придерживаться такого подхода или я должен искать что-то еще?