我在我的项目中使用zend_mail
fromzend-framework2
循环发送一些电子邮件,但有时发送电子邮件比平时需要更多时间。经过一番研究,我发现延迟发生在stream_socket_client
功能上。我试图将此函数的超时设置为可接受的值,但它似乎忽略了该设置。还尝试使用STREAM_CLIENT_PERSISTENT
限制打开的套接字的数量,但没有运气。
平均stream_socket_client
时间约为 0.03 秒,有时需要 5 秒甚至 40 秒。每个超过 0.5 秒的值对我来说都是不可接受的。我不知道是什么导致了这个问题。
当前设置:
$start = microtime(true);
$this->socket = @stream_socket_client($remote, $errorNum, $errorStr, self::TIMEOUT_CONNECTION, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT);
echo 'Stream socket: '.(microtime(true) - $start);