如何在php中处理耗时的任务?

时间:2011-07-08 16:04:58

标签: php javascript timeout

以下是问题,我有一个链接,如下:

http://mydomain.com/veryLongPrcoess.php

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

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

如果您的脚本需要很长时间才能运行,我认为除了使用pcntl_fork分配进程外,您还需要set_time_limit(0)这将允许脚本在需要时运行。如果它的记忆力很强,你可能还需要使用ini_set覆盖memory_limit。