Каждое уведомление обрабатывается ассинхроно. В секунду может быть по 30 таких уведомлений. В среднем обработка одного уведомления составляет 0.8сек. Все результаты обработки пишутся в лог с помощью nlog.
Так вот, если этот worker запустить через .exe, то все работает идеально. Но, если крутить в dockere , то через минут 15-20 происходит затык. Как бы никаких эксепшенов нет, но и ничего не происходит, логи перестают выводиться и в бд начинает расти pg_notification_queue_usage(). Как можно узнать причину?
Дебажить
А че по ресурсам, например памяти и прочему
Ах, да , в дебаге тоже все ок. Проблема только на проде
Дебажь на проде
Память поднимается не выше 1гб, т.к. данных много кэширую
Ну да
Какие-то port exhaustion вопросы уже посмотрели?
Никто так не делает
Почему? В чем проблема подключить дебаггер по ssh и чекнуть что там не так?
В том что порт для дебага никтоне откроет?
Так там же через ssh, не?
Его надо включить изнутри контейнера ещё
А ну тогда ок
А переподписка при рестарте базы/разрыве соединения работает?
В любом случае соединение стабильно , т.к. по разрыве очередь бы не начинала расти в бд
Обсуждают сегодня