PHP / Apache - обновление экрана во время выполнения exec'd-скрипта - PullRequest
1 голос
/ 07 августа 2010

Одна страница на моем веб-сайте - это PHP-скрипт, который использует exec () для запуска отдельного PHP-скрипта, который генерирует PDF-документ.

Создание PDF может занять 30 секунд. Когда я нажимаю кнопку обновления во время этого процесса, я нахожу противоречивое поведение. При обновлении страницы как на моем Mac, так и на Windows, Windows будет зависать Apache. На моем производственном сервере Linux, я не вижу проблемы.

Почему это? Мне все равно, что мои машины зависают, я просто хочу быть уверенным, что это никогда не произойдет в производстве.

1 Ответ

0 голосов
/ 07 августа 2010

Запускаете ли вы exec() каждый раз, когда страница отображается, или у вас есть логика, чтобы проверить, завершился ли предыдущий скрипт php?

Возможно, вы создаете новый PDF каждый раз, когда обновляете страницу. Если это займет некоторое время, это может привести к зависанию Apache, поскольку все потоки в его пуле потоков ожидают завершения сценариев exec, если они не отсоединены должным образом.

Если это так, он может повесить Apache на вашем рабочем сервере.

...