Web服务调用计时器

时间:2009-09-25 02:13:01

标签: php

我有一个PHP脚本,通过soap向Web服务发送请求。我希望在几秒钟内得到回复,但如果我在30秒内没有收到回复,我需要发送另一个请求,这是我的第一个请求。

有关处理此计时器功能的最佳方法的任何建议吗?我应该查看PHP的设置_time _限制设置吗?寻找任何见解或一般想法。

感谢。

2 个答案:

答案 0 :(得分:1)

在网上找到这个并且看起来是向正确方向迈出的一步......

功能 - >设置连接超时

$ client = new SoapClient($ wsdl,array(“connection_timeout”=> 5)); connection_timeout选项定义连接到SOAP服务的超时(以秒为单位)。此选项不会为响应缓慢的服务定义超时。要限制等待调用完成的时间,可以使用default_socket_timeout设置。

答案 1 :(得分:0)

如果我们只有多线程.... 我的方法(尽管你可以用CURL做异步调用)就是编写一个管理这个过程的脚本。这个脚本可以:

  1. 使用shell / cron / async javascript(来自客户端)/使用CURL调用异步调用来激活调用脚本。
  2. 每隔几秒检查调用脚本是否返回了答案(通过调用脚本将答案保存到内存/磁盘,这也用作标志 - >我完成了)
  3. 超过30秒 - 终止调用脚本的当前实例,实例化另一个调用脚本。
  4. 这是一个非常粗略的描述,应该更好地定义更精细的细节。