【Yar】Yar异步调用的超时时间问题以及解决方案
2016-11-04 19:45
399 查看
问题
由于具体业务功能需要,需要采用并行异步的方式调用方法。但是业务上要求每个被调用的方法的执行时间最多60秒,这就导致采用Yar的调用一直是timeout.
Yar_Concurrent_Client::loop(): select timeout 5000ms reached
解决方案
1.修改配置文件
Yar扩展的配置项如下yar.packager php
yar.debug
yar.connect_timeout
yar.timeout
yar.expose_info
所以,采用
ini_set()方法实现对php.ini的动态修改,实现修改
yar.timeout,完成超时时间的配置问题。
ini_set("yar.timeout",60000);
2.方法参数设置
实际上这个方法在事例代码中是存在。Yar_Concurrent_Client::call(“http://host/api/“, “some_method”, array(“parameters”), “callback”, NULL, array(YAR_OPT_TIMEOUT=>1));
在这里配置第五个参数,设置
YAR_OPT_TIMEOUT.
我在这里遇到的问题是,callback函数一直找不到,所以采用的是第一个方法。
参看资料
http://php.net/manual/zh/yar-concurrent-client.call.phphttp://www.laruence.com/2012/09/15/2779.html
Laruence本人
相关文章推荐
- Ubuntu 下安装 Yar 扩展遇到的问题以及解决方案
- composer安装过程超时的问题以及解决方案
- 关于调用FTP中遇到的问题以及解决方案
- dubbo服务调用超时问题解决方案
- 调用接口处理时间过长,前端访问超时解决方案
- SpringCloud服务消费者第一次调用出现超时问题的解决方案
- 调用Webservice时,跨时区的时间问题
- 关于DateTime在远程服务器使用以及日期与时间格式的问题
- 解决用Remoting调用远程对象时的超时问题
- ASP.NET AJAX(Atlas)现存的一些常见问题以及解决方案[持续更新]
- 在UpdatePanel中内嵌Javascript的问题以及解决方案
- 在从池中获取连接之前超时时间已过,所有池连接都已被使用并已达到最大池大小的问题解决方法
- windows2003中IIS6的session以及application在iframe中丢失问题的解决方案
- C#中调用C++写的com时遇到的问题与解决方案
- 现存问题以及解决方案:在ASP.NET AJAX中从客户端向服务器端传送DataTable
- 使用Linux过程中遇到的问题以及解决方案
- 关于调用系统菜单以及系统消息的问题
- 在ASP.NET Atlas中调用Web Service——处理错误,超时以及响应用户的取消操作
- windows2003中IIS6的session以及application在iframe中丢失问题的解决方案
- 现存问题以及解决方案:在ASP.NET AJAX客户端得到服务器端的DataTable