【发布时间】:2015-01-13 18:28:29
【问题描述】:
我正在尝试编写一个与外部 API 通信的后台函数,以检索和更新我们服务器上大约 500,000 条记录的信息。这需要时间来运行。我遇到的问题是这个 PHP 致命错误来自一个在 foreach 循环中调用的函数,它完全关闭了该函数:
SoapClient::__doRequest(): connect() failed: Connection timed out in /path/to/function on line ABC
这是该函数的模拟版本,其中指出了抛出致命错误的行,并关闭了该函数:
private function APIUpdateFunction($table,$record,$fields,$data) {
$soap = new SoapClient("https://www.endpoint.com/API/stuff.whatever");
$result = $soap->UpdateRecord(array(
"credentials" => API_CREDS,
"table" => $table,
"record" => $record,
"fields" => $fields,
"data" => $data
)); // THIS IS WHERE THE FATAL ERROR IS BEING THROWN
}
我想做的是创建一个解决方法,如果函数由于此连接超时而关闭,我想:
A) 执行一组新的操作,例如重新启动函数本身
或
B) 完全绕过错误,并在下一步中检查响应值。例如,如果 $result = NULL,则此函数中的剩余项将被绕过并返回 FALSE 值。
解决办法是什么?
【问题讨论】:
标签: php function soap-client fatal-error