触发(多)curl请求,不要等待响应(PHP)

时间:2011-08-01 21:10:30

标签: php api curl httpwebrequest

我想触发一组PHP脚本(通过multi_curl)而不是等待来自调用者脚本的响应(200 OK):

我有一个聚合器,可以在社交媒体网络API上运行搜索,要求他们提供消息。当它得到一个响应时,它会激活另一个先前(分页)消息的搜索。这可能需要很长时间,我不想让用户等待这个完成。

我希望能够从一个主脚本启动一组PHP脚本,如果你愿意的话,在后台(multi_curl?)每个脚本都会抓住所有这些消息,每个脚本都会有它的网络和要查看的关键字。我希望主脚本只调用这些其他脚本,然后不要等待它们完成,只打印出'触发请求,在后台运行'或类似的东西。它将返回JSON,因此必须正确关闭并提供200 OK。

我该怎么做?所以解雇一些multi_curls而不是等他们完成?

2 个答案:

答案 0 :(得分:1)

看一下Ruby的delayed_job的PHP端口。

https://github.com/seatgeek/djjob

答案 1 :(得分:0)

我不了解您的特定设置,但您可以创建一个脚本,在后台使用bash脚本运行PHP脚本,如下所示:

nohup php /path/to/script.1.php &
nohup php /path/to/script.2.php &
nohup php /path/to/script.3.php &

最后的&符号告诉它在后台运行脚本。 “nohup”命令告诉它忽略任何挂断信号,确保即使用户注销,脚本也会继续运行。