Запретить php сценарий от тайм-аута при обработке тысяч записей - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть сценарий 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 подходит, но результат всегда один и тот же.

Я думал о том, чтобы" нарезать "мои входные данные на вводы безопасного размера и обрабатывать один файл за другим с перезагрузкой страницы в это время, но я Понятия не имею, стоит ли придерживаться такого подхода или я должен искать что-то еще?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...