Хорошо, это может быть глупый вопрос, но здесь. Я заметил что-то на днях, когда я играл с разными конвертерами HTML в PDF в PHP. Один из них, который я попробовал (dompdf), навсегда запустил мой HTML-код. В конце концов, у него закончилась нехватка памяти и закончилось, но пока он все еще работал, ни один из моих других скриптов PHP не реагировал вообще. Это было почти так, как если бы этот запрос блокировал весь Web-сервер.
Теперь я предполагаю, что это не может быть правильным, или я должен что-то устанавливать где-то, чтобы контролировать это поведение. Может кто-нибудь, пожалуйста, подскажите мне?
у вас были открытые сеансы для каждого из сценариев? 🙂 они могут повторно использовать один и тот же сеанс и блокировать до тех пор, пока сеанс не будет освобожден последним запросом … поэтому они в основном ждут завершения друг друга (в вашем случае, работающий генератор pdf). Это применимо только в том случае, если вы используете один и тот же браузер.
Совет. Не знаете, почему вы хотите html в pdf, но вы можете взглянуть на FOP http://xmlgraphics.apache.org/fop/ для создания PDF-файлов. Я использую его и отлично работаю … и быстро 🙂 У него есть свои причуды.
Возможно, все скрипты, которые вы пытались запустить в одном пуле приложений. (По крайней мере, так оно и называется в IIS.)
Однако еще одно объяснение заключается в том, что некоторые браузеры будут размещать запросы в очереди по одному соединению. Это вызвало у меня некоторую путаницу в прошлом. Если ваш веб-браузер ожидает ответа от вашего домена yourdomain.com/script1.php, и вы откроете другое окно или вкладку для вашего доменаdomain.com/script2.php, этот запрос не будет отправлен до тех пор, пока первый запрос не получит ответ, создающий впечатление весь ваш веб-сервер висит. Простой способ проверить, если это то, что происходит, попробуйте два запроса в двух отдельных браузерах.
Похоже, сервер просто перегружен и находится под слишком большой нагрузкой для завершения запросов. Преобразование HTML-файла в PDF – довольно сложный процесс, так как PHP-скрипт должен эффективно предоставлять те же функции, что и веб-браузер, и визуализировать HTML с помощью функций рисования PDF.
Я бы предложил вам разделить HTML на отдельные файлы меньшего размера или запустить сценарий как запланированную задачу непосредственно через PHP, независимо от сервера.