私は自分のプロジェクトで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);