0

我有一个 AJAX 脚本,它需要大约 10 分钟才能完成。我希望能够告诉用户“嘿,听着,任务正在完成,我们会让你知道结果如何”,但它不会让用户在服务器上运行任何其他脚本,直到那个完成(我相信这是 PHP 是单线程的结果,但我不确定)。有没有办法将该 AJAX 脚本分配给单独的 PHP 或 Apache 进程,以便用户可以继续在应用程序中单击,而无需等待任务完成?

4

2 回答 2

3

您可以使用数据库或文件插入一些锁定机制,以防止任务同时运行多次。然后你只需要使用命令生成 PHP 进程nohup(不要挂断),有关更多详细信息,请查看这篇文章:https ://nsaunders.wordpress.com/2007/01/12/running-a-background-process-in- php/或这个问题:nohup: run PHP process in background

于 2012-09-21T23:39:46.867 回答
0

我至少花了几个小时,使用Cron Jobs解决方案对我来说非常容易。在cPanel中,您可以转到 Advanced -> Cron Jobs,然后在命令行中使用 PHP 脚本安排任务。

执行脚本 php 的命令示例:

/usr/bin/wget http://www.example.com/miscript.php

或更好:

php /home/USER/public_html/miscript.php
于 2014-04-09T15:22:48.250 回答