ngrep очень полезен для этого. Что-то столь же простое как
ngrep -W byline port 80
работал бы, но можно отфильтровать на содержании запросов также (следовательно grep часть имени), и это распечатывает полезную нагрузку пакета:
ngrep -W byline some_string port 80
Похоже, ваш единственный вариант - установить fastcgi_read_timeout
на действительно большое значение (например, 1h или 1d).
Как я могу решить проблему:
Когда пользователь отправляет запрос на создание отчета, используйте exec ("php report.php")
для запуска Скрипт генерации отчета в режиме CLI. Разумеется, используйте некоторую идентифицирующую информацию в качестве лекарств.
Загрузите страницу «Пожалуйста, подождите» для пользователя, используя AJAX, чтобы проверить, создан ли отчет с помощью ps w
. Ищите имя сценария и используемые аргументы.
После этого выполните перенаправление на страницу отчета.
Таким образом вы предотвратите использование пользователями затирания обновлений, если ожидание станет слишком долгим (фактически сделав его еще дольше), а также информируете пользователя о том, что процесс все еще продолжается.