【问题标题】:How to do process a time consuming task in php?如何在php中处理耗时的任务?
【发布时间】:2011-10-01 09:58:43
【问题描述】:

这里有问题,我有一个链接,像这样:

http://mydomain.com/veryLongPrcoess.php,

在这个 php 中,我会做一些非常耗时的事情。我使用 AJAX 调用它,但是在调用它之后,它最后超时,因为服务器中的进程仍在运行。处理它可能需要 10 分钟或更长时间...

我如何通知用户,并告诉他/她我完成了工作?而不是等待它超时。谢谢。

【问题讨论】:

  • 只需在表格中添加一条连接到您的用户 ID 的消息(例如“tbl_notifications”),并在用户访问您的网站时在页面上显示一次..

标签: php javascript timeout


【解决方案1】:

如果您的脚本需要很长时间才能运行,我认为除了使用 pcntl_fork 分叉该进程外,您还需要 set_time_limit(0) 这将允许脚本在需要时运行。如果它的内存具有创造性,您可能还需要使用 ini_set 覆盖 memory_limit。

【讨论】:

    【解决方案2】:

    一种方法是使用pcntl_fork。这将允许长任务在单独的进程中运行,并且您可以在完成后简单地向用户发送电子邮件。或者,您可以使用 AJAX 轮询服务器以查看任务是否已完成?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多