169 похожих чатов

Добрый день, коллеги. Хочу внедрить SSE в проект для отправки

уведомлений клиенту, однако столкнулся с такой ситуацией, что нужно где-то хранить «эмиттеры», которые создаются при подписке клиента на уведомления, и это, естественно, предполагает наличие состояния у приложения, что не очень хорошо и совершенно ломает всю концепцию при наличии реплик у сервиса. Как обычно решают такую ситуацию? Догадываюсь, что по-хорошему нужен отдельный сервис, который будет заниматься уведомлениями, но может быть есть какой-то более простой путь?

10 ответов

18 просмотров

БД

Dinar- Автор вопроса
Dinar
Нет

Хочешь все при сбое потерять?

Просто храни их в памяти, где-то в мапе. Совершенно не обязательно придумывать что-то ещё)

И это не является состоянием, так как эмиттер не содержит в себе данных - это просто штука для отправки уведомлений клиенту

Dinar- Автор вопроса
Дэни
Просто храни их в памяти, где-то в мапе. Совершенн...

Клиент может подписаться на событие в одном инстансе, а событие мы можем получить в другом, в этом проблема. Сам эмиттер данных не содержит, это понятно

Dinar
Клиент может подписаться на событие в одном инстан...

А, наверно об этом стоит сообщать в идеальном вопросе)) тогда тебе нужен отдельный инстанс для рассылки. Он будет максимально простой, поэтому его написание много времени не займёт и потом где бы не происходило событие, его направляют в этот рассылатель, а он отравляет клиенту

Dinar- Автор вопроса
Дэни
А, наверно об этом стоит сообщать в идеальном вопр...

Я про реплики написал же, думал ясно выразился, вот

Dinar- Автор вопроса
Дэни
А, наверно об этом стоит сообщать в идеальном вопр...

Чудес не бывает, эх. Благодарю за ответ)

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта