Ошибка phb RabbitMQ Тайм-аут соединения с сокетом

Я получаю ошибку тайм-аута соединения сокета. Из-за ограниченного количества сообщений на php-amqplib. Не могу понять это.

Замечания: Я пытаюсь поймать эту ошибку и заново подключиться к ней. Но не могу понять, как это сделать в php. что-то в строках _onError nodejs поможет.

Я получаю следующую ошибку:

PHP Fatal error:  Uncaught exception 'PhpAmqpLib\Exception\AMQPTimeoutException' with message 'Error sending data. Socket connection timed out' in /home/users/yagneshm/rabbitmq-php/vendor/videlalvaro/php-amqplib/PhpAmqpLib/Wire/IO/StreamIO.php:194

Stack trace:
#0 /home/users/yagneshm/rabbitmq-php/vendor/videlalvaro/php-amqplib/PhpAmqpLib/Connection/AbstractConnection.php(336): PhpAmqpLib\Wire\IO\StreamIO->write('\x01\x00\x01\x00\x00\x00\r\x00<\x00(\x00\x00\x00\x04...')
#1 /home/users/yagneshm/rabbitmq-php/vendor/videlalvaro/php-amqplib/PhpAmqpLib/Connection/AbstractConnection.php(377): PhpAmqpLib\Connection\AbstractConnection->write('\x01\x00\x01\x00\x00\x00\r\x00<\x00(\x00\x00\x00\x04...')
#2 /home/users/yagneshm/rabbitmq-php/vendor/videlalvaro/php-amqplib/PhpAmqpLib/Channel/AMQPChannel.php(1102): PhpAmqpLib\Connection\AbstractConnection->send_content(1, 60, 0, 15, '\xB9\x80\x10application/...', 'test no. 998539', Object(PhpAmqpLib\Wire\AMQPWriter))
#3 /home/users/yagneshm/rabbitmq-php/src/rmq.php(144): PhpAmqpLib\Channel\AMQ in /home/users/yagneshm/rabbitmq-php/vendor/videlalvaro/php-amqplib/PhpAmqpLib/Wire/IO/StreamIO.php on line 194

Я использую следующую функцию подключения:

public function connect()
{
try
{
$this->connection = new AMQPStreamConnection($this->HOST, $this->PORT, $this->USER, $this->PASS, $this->VHOST, ['read_write_timeout' => 2 * $this->HEARTBEAT,'heartbeat'=> $this->HEARTBEAT]);
$this->channel = $this->connection->channel();
} catch (Exception $e) {
echo "log error";
}
}

И следующее отправить сообщение:

public function send($queue, $message, $params)
{
try
{
$message = new AMQPMessage( $message, array( 'content_type' =>$contentType,
'delivery_mode' => $Persistent,
'expiration' => $Expiration,
'priority' => $Priority,
'message_id' => $messageId ));
$this->channel->basic_publish($message, $exchangeName, $queue);

} catch (Exception $e)
{
echo "log error";
}
}

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]