У меня есть сценарий, который может работать около 15 минут, поскольку это большой инструмент для переноса данных.
У меня проблема, если я установлю fastcgi_read_timeout 9900;
он никогда не истекает или если я устанавливаю его на меньшее значение, то время ожидания истекает до того, как мой скрипт завершится.
РЕДАКТИРОВАТЬ: я убрал fastcgi_read_timeout 9900;
из nginx.conf
и установил max_execution_time = 1300;
в php.ini, и теперь я получаю тайм-аут 504 Gateway вместо бесконечного цикла.
Как я могу правильно настроить, что страница должна быть активной до завершения выполнения скрипта?
Почему вы хотите запустить это на переднем плане? Хотя возможно взломать файлы конфигурации достаточно долго, чтобы получить такое поведение, это очень хрупкая конфигурация. Это что-то, что действительно выводит полезную информацию для пользователя в процессе? Если нет, то это почти наверняка подходит для фоновой задачи, а не для попытки запустить ее за один запрос.
Даже если это вывод для пользователя, рассматривали ли вы его запуск в качестве фоновой задачи и передачу вывода пользователю через какой-то асинхронный метод?