繁体   English   中英

PHP中的异步HTTP请求

Asynchronous HTTP requests in PHP

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

是否有任何合理的方法可以在PHP中异步发出HTTP请求而又不丢掉响应? 即,类似于AJAX的事情-PHP脚本会发起请求,这是自己的事,后来,当收到响应时,回调函数/方法或其他脚本会处理响应。

我想到了一种方法-为每个请求使用另一个脚本生成一个新的php进程-第二个脚本执行该请求,等待响应,然后解析数据并执行应做的一切,而原始脚本继续生成新的进程。 但是,我对这种情况下的性能有所怀疑-每次必须创建一个新流程都会对性能造成一定的影响。

2 个回复

是的,根据您网站的流量,生成一个单独的PHP进程来运行脚本可能会造成灾难性的后果。 使用shell_exec()启动后台进程将输出保存到您已经知道的文件名中会更有效,但是即使这样做可能也会占用大量资源。

您还可以将请求队列存储在数据库中。 一个单独的独立后台进程将拉动该作业,执行该任务,然后保存输出,并可能在DB中设置一个Web进程可以检查的标志。

如果要使用数据库队列方法,请使用curl_multi *类函数一次发送所有排队的请求。 这会将后台进程中每次迭代的执行时间限制为最长的请求时间。

V5可能没有线程化,但是您可以创建利用进程内多任务处理的应用程序。

请查看以下文章:IBM DeveloperWorks的“使用PHP V5开发多任务应用程序”。 您可以在这里找到它http://www.ibm.com/developerworks/web/library/os-php-multitask/

1 使用PHP可以进行异步HTTP请求吗?

我有一个PHP脚本,需要从远程服务器下载多个文件。 目前,我只有一个循环使用cURL下载和处理文件,这意味着它直到下一个文件完成后才开始下载一个文件-这大大增加了脚本的运行时间。 是否可以启动多个cURL实例,例如,同时异步下载这些文件而无需等待上一个实例完成? 如果是这样,将如何实现 ...

2011-03-27 23:24:50 5 44743   php/ curl
2 如何在 PHP 中发出异步 HTTP 请求

PHP 中有没有办法进行异步 HTTP 调用? 我不在乎响应,我只想做类似file_get_contents()事情,但在执行我的其余代码之前不等待请求完成。 这对于在我的应用程序中触发某种“事件”或触发长进程非常有用。 有任何想法吗? ...

3 与ruby的异步HTTP请求

我有一个充满请求的Rabbitmq队列,我想以HTTP GET异步方式发送请求,而无需等待每个请求响应。 现在我对使用哪种更好,线程还是仅使用EM感到困惑? 我现在使用它的方式类似于以下内容,但是很高兴知道这里是否有更好的实现以及更好的性能,因为它是程序的关键部分: 使用上面的代码, ...

4 异步http请求改造

从一定数量的站点(约20个)中,我需要收集信息(json〜数组中有100个对象),并在收集后将其输出到RecyclerView。 2种选择: 复制整个应用程序的一份副本,然后依次同步访问每个站点,例如将数据加载到普通集合中 为每个站点制作一个副本,并在线程安全的集合中异步 ...

5 异步HTTP请求的顺序

基本上我有一个包含元素列表的组件,我有一个详细信息组件,您可以在其中编辑或添加新元素。 我通过http服务添加一个元素(this.myservice基于文档https://angular.io/docs/ts/latest/tutorial/toh-pt6.html中的 hero.serv ...

6 Android异步HTTP请求

我是Android的新手,一直在互联网上搜索,试图找到一种将数据发布到php的方法。 我要做的就是发送一个字符串。 使用我能找到的内容,我想到了以下内容 这是我所拥有的 我知道php代码可以正常工作,因为我已经尝试使用html表单了,但是当我运行此代码时,应用程序崩溃并关闭。 ...

7 异步齐发HTTP请求

由于Volley中的所有请求都在不同的线程上异步执行而没有阻塞“主线程”,是否有任何方法可以等待请求完成然后继续执行主线程? ...

8 使用PHP curl_multi的异步/并行HTTP请求

我最近研究了用curl发出多个请求的可能性。 我可能没有完全理解它,所以我只是希望澄清一些概念。 如果您从多个来源获取内容,这绝对是一个不错的选择。 这样,您可以从更快的服务器开始处理结果,同时仍然等待较慢的服务器。 如果您从同一台服务器请求多个页面,是否仍然有意义使用它? 服务器 ...

9 异步HTTP请求,排队请求

我之前为appstore开发过,我使用了ASIHTTPRequest 。 Android有类似的东西吗? 我正在考虑制作一些排队和可管理的HTTP请求。 这就是我需要做的事情: 设置一个队列,让我们说6个http请求。 设置队列后,使用每个请求执行它,从而获得成功/失 ...

10 在Java中等待异步http请求

我正在使用Jetty HTTP Client异步进行约50个HTTP调用。 代码看起来像这样: 它正在调用Rest服务,该服务返回有关该地址的一些数据。 我期望它是这样的: 进行50次异步(非阻塞)http调用。 线程将等待,直到全部50个线程完成。 但是, ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM