问题就在这里,我有一个链接,像这样:
http://mydomain.com/veryLongPrcoess.php 在这个php中,我将做一些非常耗时的事情。我使用AJAX调用它,但是在调用它之后,它最后超时了,因为服务器中的进程还在运行。处理它可能需要10分钟或更长时间…我如何通知用户,并告诉他/她我完成了工作?而不是等待它超时。谢谢你。
这样做的一种方法是使用pcntl_fork
。这将允许长任务在单独的进程中运行,并且您可以在完成后简单地向用户发送电子邮件。或者,您可以使用AJAX轮询服务器以查看任务是否已完成。
如果您的脚本需要很长时间才能运行,我认为除了使用pcntl_fork fork进程外,您还需要设置set_time_limit(0),这将允许脚本运行只要它需要。如果内存不足,您可能还需要使用ini_set覆盖memory_limit。