Почему в связи с сердцебиениями нет сердцебиения.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Почему в связи с сердцебиениями нет сердцебиения.

Сообщение Anonymous »

Я пытаюсь подключиться к Rabbitmq от потребителя PHP с использованием phpamqplib . Соединение иногда молча закрывается. Среднее время до неудачи составляет около пары недель; Я попытался повторить, блокируя порты, выключив потребителя PHP и закрепляя соединение от пользовательского интерфейса Management RabbitMQ - но ни один из них не повторяет ошибку: < /p>

Когда соединение закрыто, потребителю не отправляется событие ошибки. > При перезапуске потребитель воссоединяется без ошибки. Я предполагаю, что проблема в том, что нет сердцебиения, и это, кажется, подтверждается UI Management:
< /p>
Отлично, поэтому мне просто нужно узнать, как включить сердцебиение. Согласно документам RabbitMQ, достаточно , чтобы установить ненулевое сердцебиение с клиентом или сервером.
< em> оба имеют ненулевое сердцебиение.

Код: Выделить всё

# rabbitmq-diagnostics environment | grep -i heartbeat
{heartbeat_interval,100},
{heartbeat,60},
< /code>
Вот выдержка из класса, где я создаю соединение, адаптировано из (незарегистрированного) кода I унаследован: < /p>
use PhpAmqpLib\Connection\AMQPConnectionConfig;
use PhpAmqpLib\Connection\AMQPSSLConnection;
use PhpAmqpLib\Connection\AMQPStreamConnection;
...
private AMQPStreamConnection $connection;
...
$heartbeat = 20;
$conconf = new AMQPConnectionConfig();
$conconf->setHeartbeat($heartbeat);
$conconf->setKeepalive(true);

# See
# https://php-amqplib.github.io/php-amqplib/classes/PhpAmqpLib-Connection-AMQPStreamConnection.html
$this->connection = new AMQPStreamConnection(
$this->host,
$this->port,
$this->user,
$this->password,
'/', # $vhost
# $insist - insist on connecting to a specified server, default
# value:
false,
AMQPConnectionConfig::AUTH_AMQPPLAIN, # $login_method, default value
null, # $ login_response, default value
'en_US', # $locale, default value
3.0, # $connection_timeout, default value
40.0, # $read_write_timeout, supposed to be at least 2*heartbeat?
null, # $context, default value
true, # $ keepalive
null, # $io, default value
# $heartbeat, heartbeat interval; default is 0 which RabbitMQ
# recommends against. See
# https://www.rabbitmq.com/docs/heartbeats
$heartbeat,
0.0, # $channel_rpc_timeout,
null, # $ssl_protocol ?
$conconf # $config
);
он работает для потребления сообщений до тех пор, пока соединение не упадет, так что кажется, что я близок ...

Подробнее здесь: https://stackoverflow.com/questions/794 ... connection
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»