【问题标题】:Zend Framework 2 with DOMPDFModuleZend Framework 2 与 DOMPDFModule
【发布时间】:2015-06-13 03:04:33
【问题描述】:

我正在尝试使用 DOMPDFModule 模块从 MySQL 表中导出数据,但收到以下消息:

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 查询结果时,它运行良好。

有什么建议吗?

【问题讨论】:

  • 问题可能是一个过于复杂的文档,需要更多时间(在这种情况下,提供的答案之一应该会有所帮助),也可能是其他问题(例如 dompdf 中的错误)。查看代码示例将有助于破译正在发生的事情。

标签: php zend-framework2 dompdf


【解决方案1】:

首先,停止在您的 HTTP 请求中生成 PDF 文件(假设您正在这样做)。使用 SlmQueue 之类的东西通过 CLI 异步处理 PDF。

然后,CLI 没有设置 30 秒的超时,因此您可以让它运行更长时间。监控作业速度和内存使用情况,因为 DOM pdf 应该能够以这种方式在 CLI 中生成 pdf 文件。

【讨论】:

  • 在哪里可以找到使用 SlmQueu 的真实示例,以及它如何与 PDF 生成一起使用?
  • 据我所知,目前还没有开放的商业软件,但是将SlmQueue和Dompdf模块的文档放在一起并不难。
  • 我收到了这条消息Socket error 10061: No connection could be made because the target machine actively refused it. (connecting to 127.0.0.1:11300) 这是什么意思?
  • @Blagi 这是一个典型的 Beanstalkd 错误。 SlmQueueBeanstalkd 使用 Pheanstalk。此 php 客户端无法连接到 beanstalkd 服务器。 Pheanstalk 配置不正确,或者 beanstalkd 服务没有运行或在另一个端口上运行。
【解决方案2】:

您的查询似乎需要 30 多秒才能执行,而 PHP 正在杀死它。您可以改进您的代码,以便在 30 秒内获得您的标签,或者增加 php 时间限制,如下所示:

set_time_limit(200); // set to 200 seconds

您也可以像这样将其设置为无限时间:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多