Size: a a a

2020 July 28

SP

Sergey Prokhorov in ErlangRus
ну я с трудом представляю чтоб у нас от неё отказались. Очень плотно всё завязано. Последние 2 года почти только тем и занимаемся что новые типы сообщений добавляем
источник

SB

S B in ErlangRus
ну понятное дело, такие решения уже почти невозможно выпилить. но в целом суть уловил, спасибо. еще бы Постгре чтоб дружил, наверно тогда вообще хорошо было бы.
источник

SB

S B in ErlangRus
https://github.com/epgsql/epgsql я вот что нашел на эту тему, но еще внимательно не смотрел
источник

SP

Sergey Prokhorov in ErlangRus
😄
источник

SP

Sergey Prokhorov in ErlangRus
для epgsql нужно пул соединений хороший, т.к. из коробки нет
источник

SB

S B in ErlangRus
я хорошо опенсоурс по Эрлангу пока не знаю, но предполагаю, что какой-нибудь poolboy?
источник

SP

Sergey Prokhorov in ErlangRus
ну вот с poolboy есть несколько проблем как раз. например если захотелось базу данных перезапустить, то есть шанс положить erlang ноду из за supervisor max restarts
источник

SB

S B in ErlangRus
а какие есть альтернативы? или такие штуки обычно сапописные, под конкретный юзкейс?
источник

SP

Sergey Prokhorov in ErlangRus
некоторые процесс epgsql заворачивают в gen_server и уже в этом процессе обрабатывают переподключения. Я для своих "игрушек" пользуюсь https://github.com/seth/pooler - просто процесс epgsql подключения как есть под ним держу. Нет нареканий, рестарты отлично переживает, сетевые задержки тоже. Но автор перестал поддерживать =(
источник

SB

S B in ErlangRus
Sergey Prokhorov
некоторые процесс epgsql заворачивают в gen_server и уже в этом процессе обрабатывают переподключения. Я для своих "игрушек" пользуюсь https://github.com/seth/pooler - просто процесс epgsql подключения как есть под ним держу. Нет нареканий, рестарты отлично переживает, сетевые задержки тоже. Но автор перестал поддерживать =(
это, получается, gen_server -процесс будет monitor ить процесс, который представляет соединение к сиквелу и в случае получения сообщения и о его смерти (насколько я помню, это handle_info случай?) тупо в лоб его рестартовать? ну или как-то по-умнее, например с растущей по степени двойки паузой.
источник

SP

Sergey Prokhorov in ErlangRus
S B
это, получается, gen_server -процесс будет monitor ить процесс, который представляет соединение к сиквелу и в случае получения сообщения и о его смерти (насколько я помню, это handle_info случай?) тупо в лоб его рестартовать? ну или как-то по-умнее, например с растущей по степени двойки паузой.
ну примерно так, да
источник

SB

S B in ErlangRus
Sergey Prokhorov
ну примерно так, да
звучит вполне годно
источник

SB

S B in ErlangRus
а в ваших этих продакшинах distributed application используется?
источник
2020 July 29

SP

Sergey Prokhorov in ErlangRus
S B
звучит вполне годно
ну.. на любителя =) вот например у epgsql есть много прикольных API функций типа execute_batch или там асинхронный API. И если у тебя процесс epgsql завёрнут в gen_server то не понятно как все эти API предоставлять
источник

SP

Sergey Prokhorov in ErlangRus
S B
а в ваших этих продакшинах distributed application используется?
в последних 2х местах где я работал - используется
источник

SP

Sergey Prokhorov in ErlangRus
(в смысле в предыдущем и текущем)
источник

SB

S B in ErlangRus
Sergey Prokhorov
ну.. на любителя =) вот например у epgsql есть много прикольных API функций типа execute_batch или там асинхронный API. И если у тебя процесс epgsql завёрнут в gen_server то не понятно как все эти API предоставлять
Ну по крайней мере если я такой код увижу, я не поперхнусь чаем и мне будет понятно как с н м работать.
источник

SB

S B in ErlangRus
Sergey Prokhorov
в последних 2х местах где я работал - используется
И что представляет собой CI процесс? Можешь в пяти словах обрисовать как код от разработчика доезжает до QA и до прода с учетом распределённых приложений?
источник

SP

Sergey Prokhorov in ErlangRus
в текущем месте у нас просто БД встроена в Erlang ноды =( mnesia
источник

SP

Sergey Prokhorov in ErlangRus
так что через distribution по сути только репликация mnesia. Тесты все в feature-branch гоняются в однонодной конфигурации. Но в ночной сборке там делают кластер, загружают туда дамп с production и гоняют всякие более хитрые сценарии и лоадтесты. Если все ок - утром релиз.
источник