apollo-php-client icon indicating copy to clipboard operation
apollo-php-client copied to clipboard

执行php start.php时过一段时间就报错,请问怎么处理

Open ayamzh opened this issue 6 years ago • 3 comments

error:Operation timed out after 60078 milliseconds with 0 out of -1 bytes received

ayamzh avatar Jul 23 '19 08:07 ayamzh

修改/src/ApolloCllient.php中超时时间大于60秒 protected $intervalTimeout = 80

lwp145 avatar Sep 10 '19 06:09 lwp145

我也遇到这个问题了。我查了一些材料后发现这个错误是PHP的CURL下载超时导致,通过curl_setopt($ch, CURLOPT_TIMEOUT, 0);去除超时限制可以去掉这个提示。但是setIntervalTimeout($intervalTimeout)方法的实现是:

    public function setIntervalTimeout($intervalTimeout) {
        $intervalTimeout = intval($intervalTimeout);
        if ($intervalTimeout < 1 || $intervalTimeout > 300) {
            return;
        }
        $this->intervalTimeout = $intervalTimeout;
    }

也就是说无法通过正常的设置将超时时间设为0。不清楚作者当初将这个超时限制为1到300秒是出于什么样的考虑?@xiaodx12

MengShaoying avatar Mar 10 '20 03:03 MengShaoying

CURLOPT_TIMEOUT是接收数据等待时间。start方法的CURLOPT_TIMEOUT没有包裹在trycatch里面,接收超时后会抛出异常,造成中断。apollo服务端会保持连接60秒。所以把intervalTimeout设置为大于60就可以了

michael23-24 avatar Sep 27 '20 08:09 michael23-24