Size: a a a

2019 November 18

DF

Denis Fakhrtdinov in ErlangRus
Селектив ресивом, конечно.
источник

V

Vasilii Demidenok in ErlangRus
со всеми пеналтями, ага
источник

DR

Dmitry Russ (Aleksandrov) in ErlangRus
@define_null @shizzard Полностью согласен, в общем-то вы меня понимаете, почему я не хочу блокировать процесс и собирать сообщения в меилбоксе.
источник

V

Vasilii Demidenok in ErlangRus
ну вот попробуй через это аргументировать
источник

DF

Denis Fakhrtdinov in ErlangRus
Я вообще проблему не понял, просто триггернулся на селектив ресив :)
источник

ML

Maksim Lapshin in ErlangRus
Dmitry Russ (Aleksandrov)
Привет! Вопрос по архитектуре и дизайну.

Есть long running worker, который выполняет сложную логику, который очень сложно было дебаггить.

Теперь, я в своё время добавил то, что он собирает статистику и сделал его дизайн полностью step-by-step, что он мог останавливаться (по запросу), что его можно было интроспектировать и говорить, работай дальше, при том основную часть запросов я там научил складывать в queue и не держать в message queue.

Пришёл другой разработчик и хочет возможность процесса работать step-by-step убрать и добавить debugger модуль, а основной процесс умеет только делать - attach_debugger, detach_debugger и добавляет в одном месте возможность обратиться к дебаггеру и блокируется и уже другой процесс отвечает за то, продолжить или остановиться и что делать с процессом.

Мне казалось правильнее, если процесс сам умеет обрабатывать вещи частями, а другой разработчик считает, что это должно быть не в buisness логике, а вообще отдельно и вот таким образом приделывает.

Что считаете? Как по Вашему опыту лучше? Заранее благодарю за любое мнение.
офигенно, если у тебя получится превратить его в машинку (настоящий fsm), обрабатывающую входные команды в таком стиле, чтобы у тебя мог получиться replay log
источник

СИ

Сергей Иванов in ErlangRus
Vasilii Demidenok
со всеми пеналтями, ага
Так затык обработки уже авария. Чо на пинальти пенять. К тому же в 21 оптимизировали же
источник

V

Vasilii Demidenok in ErlangRus
Затык обработки это твоя стратегия бороться с оверлоад. Ты можешь встать раком, а можешь обработать столько сколько можешь.
источник

DF

Denis Fakhrtdinov in ErlangRus
У тебя затык обработки by desing если ты сообщения оставляешь в очереди.
источник

V

Vasilii Demidenok in ErlangRus
Но трабла в том, что ты даже backpressure сделать на этом нормально не можешь, чтобы сказать другому процессу - горшочек не вари, дай я разгребу.
источник

V

Vasilii Demidenok in ErlangRus
т.е. в итоге что будет случаться  -креш по памяти и потерянные очереди сообщений. Неограниченные очереди, тем более на мессадж кью процесса здоровенный антипаттерн для акторных систем
источник

V

Vasilii Demidenok in ErlangRus
источник

V

Vasilii Demidenok in ErlangRus
почитай Planning for Overload от Freda если мне не веришь =)
источник

СИ

Сергей Иванов in ErlangRus
Denis Fakhrtdinov
У тебя затык обработки by desing если ты сообщения оставляешь в очереди.
Про то и речь. Перекладывание яиц это прячет
источник

DF

Denis Fakhrtdinov in ErlangRus
Куда прячет?
источник

V

Vasilii Demidenok in ErlangRus
перекладывание яиц даёт тебе возможность обработать этот затык так как тебе нужно
источник

V

Vasilii Demidenok in ErlangRus
а ты предлагаешь игнорить
источник

DF

Denis Fakhrtdinov in ErlangRus
У тебя кроме message_queue_len инструментов интроспекции нет?
источник

СИ

Сергей Иванов in ErlangRus
Denis Fakhrtdinov
Куда прячет?
В никуда. От рефакторинга. А дропнуть очередь и системную можно. См gun
источник

V

Vasilii Demidenok in ErlangRus
Сергей Иванов
В никуда. От рефакторинга. А дропнуть очередь и системную можно. См gun
куда смотреть-то конкретно?
источник