Size: a a a

2020 February 17

ŹR

Źmićer Rubinštejn in pro.elixir
Если ты вызываешь register - приходит register. Если вызываешь unregister - приходит unregister. С какой стати смерть процесса и unregister вообще связаны?
источник

VA

Vsevolod Avramov in pro.elixir
Ну вот смотри.. Есть Registry https://hexdocs.pm/elixir/Registry.html
Там можно добавить Listeners: https://hexdocs.pm/elixir/Registry.html#start_link/1
:listeners - a list of named processes which are notified of :register and :unregister events. The registered process must be monitored by the listener if the listener wants to be notified if the registered process crashes. 

Но чота у меня :unregister эвент не хэндлится нифига. Думаю ЧЯДНТ
источник

VA

Vsevolod Avramov in pro.elixir
А не связано, да? :(
источник

VA

Vsevolod Avramov in pro.elixir
Надо вручную вызывать? Печаль
источник

LL

Lama Lover in pro.elixir
Удали ботов из чата, пожалуйста
источник

VA

Vsevolod Avramov in pro.elixir
Ну :register то я в ручную не вызываю. Он автоматом вызывается когда я делаю name :via в генсервере
источник

LL

Lama Lover in pro.elixir
Vsevolod Avramov
Ответьте лучше на вопрос по поводу Listener к Registry.
Если появляется новый Process, который привязан к регистри, то регистри на листенеров отправляет эвент :register
А вот если этот процесс убить, то эвент :unregister не отправляется... Почему из коробки этого нет? :(
Если процесс умирает, то он исчезает из Registry, но никакой кастомный callback не вызывается
источник

VA

Vsevolod Avramov in pro.elixir
И где лучше тогда отлавливать этот момент - в Registry?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Если процесс умирает, то он должен переподнятся супервизором
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Все остальные сценарии - это надо самому писать
источник

VA

Vsevolod Avramov in pro.elixir
Хм-м-м...
источник

VA

Vsevolod Avramov in pro.elixir
Всё до меня дошло. Я там в одном месте pidы храню. А надо хранить только tuple для Registry, И тогда мне будет типа пофиг - старый это процесс или новый
источник

VA

Vsevolod Avramov in pro.elixir
Спасибо вам
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Źmićer Rubinštejn
Ну всегда удобнее поддерживать код чем переписать его
Видимо ты не видел ужасный код….
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Есть случаи, когда переписать оказывается менее болезненно.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Чем ужаснее код, тем обычно теснее он завязан на бизнес процессы. И либо ты останавливаешь разработку всего и вся на полгода пока переписываешь (я утрирую но все же), либо ты начинаешь ступенчатые улучшения. Так вот во время этих улучшений ты просто рефакторишь наследие предков
источник

VA

Vsevolod Avramov in pro.elixir
Причём предком вполне можешь быть ты сам )))
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Źmićer Rubinštejn
Чем ужаснее код, тем обычно теснее он завязан на бизнес процессы. И либо ты останавливаешь разработку всего и вся на полгода пока переписываешь (я утрирую но все же), либо ты начинаешь ступенчатые улучшения. Так вот во время этих улучшений ты просто рефакторишь наследие предков
Просто сложно себе представить «ужасный микросервис на 100 строк, который можно переписать за день»
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Гораздо легче «вот тут у нас есть проект, и короче он настолько сильно связан, что даже другой проект пострадает если мы его перепишем»
источник

IK

Ihor Katkov in pro.elixir
Źmićer Rubinštejn
Чем ужаснее код, тем обычно теснее он завязан на бизнес процессы. И либо ты останавливаешь разработку всего и вся на полгода пока переписываешь (я утрирую но все же), либо ты начинаешь ступенчатые улучшения. Так вот во время этих улучшений ты просто рефакторишь наследие предков
Именно так в моей компании просрали кучу денег
источник