Size: a a a

2018 November 08

YZ

Yuri Zhloba in pro.elixir
Ребята, суть в том, что вам нужно понимать, работает ли ваша система в штатном режиме, или в ней что-то крашится, что не должно крашится. Делайте это как хотите. Если понимание есть, то все ок.
источник

YZ

Yuri Zhloba in pro.elixir
Ваш try catch, это способ спрятать нештатную ситуацию и не узнать о ней. Но если вы все-таки узнали каким-то другим способом, то все ок.
источник

RS

Roman Suleymanov in pro.elixir
Почему спрятать
источник

RS

Roman Suleymanov in pro.elixir
Наоборот же
источник

RS

Roman Suleymanov in pro.elixir
В обработчике можно и в лог написать
источник

RS

Roman Suleymanov in pro.elixir
Письмо отправить и т д
источник

YZ

Yuri Zhloba in pro.elixir
А блин. Тут варианта со штатным завершением воркера вообще нет. Если сделать call на несуществующий процесс, то будет другая ошибка, не таймаут. Таймаут - - это если на момент call процесс был жив. Значит речь идет только об аварийном его завершении. Ну или он не завершился, а просто не успел ответить. Что тоже, наверняка, нештатная ситуация.
источник

YZ

Yuri Zhloba in pro.elixir
Тогда тем более нельзя рекомендовать try catch как общий подход. Разве что как особое решение для особых случаев.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Вот кстати вопрос на засыпос: что будет если стоит тайм-аут 5 секунд, а сервер ответит через 6?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Нам же в мэилбокс придёт необработанное сообщение. И если мы продолжим дальше работать в штатном режиме, и к примеру ещё раз попробуем дернуть тот же сервер, то у нас будут в результате такого call неконсистентные данные уровня разыменования несуществующего указателя в c. Я правильно понимаю?
источник

Е

Евгений in pro.elixir
Źmićer Rubinštejn
Вот кстати вопрос на засыпос: что будет если стоит тайм-аут 5 секунд, а сервер ответит через 6?
в доках есть об этом. Если трапить экзиты, то да, придет сообщение
источник

Е

Евгений in pro.elixir
насчет неконсистентности вряд-ли, скорее оно просто зависнет в очереди, там вроде у каждого call уникальный референс
источник

Е

Евгений in pro.elixir
но тут речь  не про таймауты, я про несуществующий процесс
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Я веду к тому, что походу let it crash это mandatory стиль в ОТП
источник

ŹR

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

Е

Евгений in pro.elixir
у меня таймауты стоят чаще всего в :infinity
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Евгений
насчет неконсистентности вряд-ли, скорее оно просто зависнет в очереди, там вроде у каждого call уникальный референс
По-моему референс - это пид процесса к которому ты идёшь
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Я правда могу ошибаться
источник

YZ

Yuri Zhloba in pro.elixir
Евгений
у меня таймауты стоят чаще всего в :infinity
Хороший способ обрушить ноду из-за out of memory из-за переполнения очередей :)
источник

YZ

Yuri Zhloba in pro.elixir
А плюсов не дает вообще никаких
источник