Size: a a a

2022 January 18

v

voiciano in symfony
как уже написали, hb может быть и чаще, и к тому же выглядит костыльно очень))
источник

D

Dmitry in symfony
У вас есть несколько вариантов
1. Отправлять пинг ивенты руками
2. Supervisord и его аналоги. Даже если консьюмеризм упадёт то его переподгимет и сообщение таки обработается
3. Перезапускать штатно раз в Н секунд
источник

v

voiciano in symfony
не знаю, что такое скедуллеры, это что?))

а когда вы консюмер запускается внутри roadrunner, то как же mysql подключения ? тоже самое может быть и с mysql.

можно поймать Mysql query error: (2006) MySQL server has gone away

мы его тоже ловим, так же часто, как и heartbeat.

т.е. подключения с mysql отваливается..
источник

MK

Mikhail Kobychev in symfony
источник

D

Dmitry in symfony
Подключение к базе нужно переустанавливать на каждое сообщение. Пинговать - если умер - Реконнект
источник

v

voiciano in symfony
а в какой момент отправлять пинг ? если

консюмер в цикле висит и слушает очередь

while ($channel->is_open()) {
   $channel->wait();  // тут происходит долгое ожидание...
}
источник

MK

Mikhail Kobychev in symfony
а у wait нет таймаута как в кафке? я прост не смотрел
источник

v

voiciano in symfony
кстати, я пробовал методу wait передавать параметр timeout - не помогло почему то. все равно все висело..
источник

D

Dmitry in symfony
Да просто PingEvent пустой в очередь кидаете и его слушают все консьюмеры
источник

D

Dmitry in symfony
Раз там в Н секунд. Но это геморрой.
источник

v

voiciano in symfony
подобных решений много)

убивать принудительно консюмер, кидать фековые сообщения, читать по одному сообщению из консюмера и убивать его и т.д.))

но руки не поднимается такое сделать))
источник

D

Dmitry in symfony
Я бы на вашем месте выбрал бы пункт с принудительным завершением раз в Н секунд
источник

D

Dmitry in symfony
Тогда пишите демона на другом языке. С хартбитом у libamqp тяжело
источник

• درھَ رﺣّ͠ـيم ﺑدﻧـ ... in symfony
источник

• درھَ رﺣّ͠ـيم ﺑدﻧـ ... in symfony
Can help me in my graduation project to obtain a bachelor's please
источник

D

Dmitry in symfony
Хотя сам мессенджер может и решает вопрос что хартбита внутри себя
источник

AD

Andrey Dembitskyi in symfony
Что то с ext-amqp я не ловил таких проблем...
источник

D

Dmitry in symfony
Потому как у меня все ок. Все сообщения обрабатываются
источник

v

voiciano in symfony
у мессенджера мне еще нравится, что там можно ограничения ставить по потребляемой памятии т.д.

если консюмер сожрал больше 300мб то он перезапускается.

насколько я понял из доки)) возможно и не так
источник

D

Dmitry in symfony
Так. И по времени умеет перезапускаться
источник