【发布时间】:2018-08-21 02:19:38
【问题描述】:
我有一个 webrequest 处理实时调用(需要 100 毫秒内的处理时间),某些操作需要很长时间(250 毫秒)。我在检查是否可以在处理原始请求时触发并忘记 Web 请求?到目前为止,我已经收集到:
可以使用 php 在 php 中创建异步 http 帖子: Asynchronous PHP calls?
只要请求连接建立,Apache 就会停止处理 关闭: http://activelamp.com/blog/development/asynchronous-php-with-message-queues/
使用 php 线程 vs 消息队列(类似于 #2)
如果可能的话,请告诉我方法并指出来源。
【问题讨论】:
-
是的,这是可能的。您可以在 linux 上通过
exec()(命令行)在命令末尾使用> /dev/null &之类的方式使用curl来分离 shell。 -
@ArtisticPhoenix 如果可以,请告诉我如何做到这一点。谢谢。
-
我会尝试类似
exec('curl http://example.com/index.php > /dev/null &')的方法,我以前从未尝试过,但它可能会奏效。这可能只适用于 Linux。 -
谢谢,此答案的其中一位 cmets 指出了您的建议:stackoverflow.com/a/124557/376742 exec("curl $url > /dev/null 2>&1 &");
-
wget 与 curl 不同,但它们都发出 HTTP 请求。如果您不担心退货,则两者都应该有效。只是不要将用户提供的数据放入
exec而不使用escapeshellarg或类似unix.stackexchange.com/questions/47434/…
标签: php apache message-queue asynchttpclient