2015-04-08 2 views
0

Я пытаюсь экспортировать данные из MySQL таблицы, используя DOMPDFModule модуля, но я получаю сообщение:Zend Framework 2 с DOMPDFModule

Fatal error: Maximum execution time of 30 seconds exceeded in D:\www\autodbzend\vendor\dompdf\dompdf\include\text_renderer.cls.php on line 36 

Когда я распечатайте SQL результата запроса в представлении, она работает идеально.

Любое предложение?

+0

Проблема может быть слишком сложным документом, для которого требуется больше времени (в этом случае должен помочь один из предоставленных ответов), или это может быть какая-то другая проблема (например, ошибка в dompdf). Это поможет увидеть образец кода, который поможет расшифровать то, что происходит. – BrianS

ответ

0

Кажется, что ваш запрос занимает более 30 секунд для выполнения, а PHP его убивает. Вы можете либо улучшить свой код таким образом, чтобы получить табе менее чем за 30 секунд, или увеличение лимита времени PHP следующим образом:

set_time_limit(200); // set to 200 seconds 

Вы также можете установить его на неограниченное время, как это:

set_time_limit(-1); //set to unlimited time limit 
1

Во-первых, прекратите генерировать PDF-файлы в ваших HTTP-запросах (при условии, что вы это делаете). Используйте что-то вроде SlmQueue для асинхронной обработки PDF-файлов через CLI.

Затем CLI не имеет установленного таймаута в течение 30 секунд, поэтому вы можете продолжать работать дольше. Контролируйте скорость работы и использование памяти, так как DOM pdf должен иметь возможность генерировать PDF-файлы в CLI таким образом.

+0

Где найти настоящий пример с SlmQueu и как он работает с созданием PDF? – Blagi

+0

Нет никакого открытого коммерческого программного обеспечения, насколько я знаю, но нетрудно объединить части документации из SlmQueue и модуля Dompdf. –

+0

Я получил это сообщение «Ошибка сокета 10061: соединение не может быть сделано, потому что целевая машина активно отказалась от него. (подключение к 127.0.0.1:11300) 'Что это значит? – Blagi