1

我有一个 php 程序,它执行广泛的 curl 请求来抓取网页。它可能多达一百万个请求。我需要完全停止脚本运行。即使我在浏览器中停止了它,它仍在处理请求。我怎样才能永久停止它?

4

4 回答 4

5

您只是在终止请求,您需要停止 apache 以暂时停止它。将来重新设计它,以便进程查找终止开关(如文件的存在)并在找到它时停止处理。听起来你正在将一个长时间运行的进程塞进一个 php 脚本中,为什么不直接将它作为一个正常的系统进程运行呢?

于 2013-01-09T18:04:26.477 回答
4

假设您正在运行典型的灯堆栈,如有必要,通过 SSH 连接到您的机器,然后重新启动 Apache。

如果您真的要使用 PHP 执行长时间运行的任务,我必须建议您考虑使用 cron 来运行它们或实现某种任务队列。从浏览器请求中触发这类事情通常是一个非常糟糕的主意。

于 2013-01-09T18:04:02.560 回答
2

重启阿帕奇。如果您使用的是 XAMP,请从控制面板停止并启动它。

如果没有,在 Windows 上,转到任务管理器并结束apache.exe进程。然后重新开始。

于 2013-01-09T18:03:25.497 回答
1

为什么每个人都认为你在运行 Apache?重新启动您的网络服务器,它应该是花花公子。将来,您可能会有一个终止开关,例如(示例):

while(!file_exists('stop.txt'))

然后在您准备停止时制作该文件^。^或者在切断之前进行有限次数的迭代。

于 2013-01-09T18:08:34.333 回答