php访问url地址不返回,PHP如何请求url之后不需要等待url返回值,直接执行后面代码?...

最近开发中遇到这么一个问题,程序第4行会请求一个url,但是这个url的响应时间很长,而且我的程序中用不到他的返回值,所以我在想能不能在第4行发送请求之后不用等待他返回值,直接执行第5行代码,可以吗?如果可以的话,怎么做到?

回复内容:

最近开发中遇到这么一个问题,程序第4行会请求一个url,但是这个url的响应时间很长,而且我的程序中用不到他的返回值,所以我在想能不能在第4行发送请求之后不用等待他返回值,直接执行第5行代码,可以吗?如果可以的话,怎么做到?

http://www.laruence.com/2008/04/14/318.html

sleep(10)这个长达10秒的操作由正在提供Web服务的PHP进程来处理显然是不合适的,因为这肯定会造成一个PHP工作进程被阻塞.这时可以考虑用popen或proc_open异步调用一个CLI程序进行一些耗时的操作.

/www/index.php

如果你用不到这个返回,你可以直接把这个地址存到数据库,由别的程序在服务器上执行

要是用php-fpm可以看看这个函数fastcgi_finish_request

你把运行慢的代码写在这个函数之后就可以了

http://php.net/manual/zh/function.fastcgi-finish-request.php

可以使用 php 异步扩展 swoole.

可以用多线程,pthread扩展,http://php.net/manual/en/book.pthreads.php

把请求操作放在队列中,异步执行

array(

'timeout' => 5

)

));

$contents = file_get_contents('http://www.google.com', 0, $context);

echo '5秒后到这'

?>

用队列请求

用队列请求

用队列请求

这肯定是不可以的 !

要么你使用队列执行 .

要么 你用 swoole 或者 Node.js

PHP 在设计上就决定了 , 它只能从头到尾执行 。

生产者/消费者模式

简单粗暴的写法,可以把这个逻辑用register_shutdown_function()执行

你不需要返回一个请求的内容 你去请求他干啥。。。

相关标签:php

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值