Я пишу сервер, который регулярно должен менять формат отправленных / полученных сообщений. когда это происходит, сервер должен отправить уведомление о том, что все будущие сообщения имеют новый формат, и прочитать все полученные в старом формате, пока клиент не отправит подтверждение.
Я подумал о том, чтобы сохранить ссылку на декодер, общий для всех конвейеров, и перенастроить ее извне, если необходимо. Я беспокоюсь о параллелизме в этом случае.
- как я могу убедиться, что конвейер не обрабатывает записи
я работаю над декодером?
- и как быть уверенным, что уведомление
обрабатывается первое сообщение после реконфигурации?
единственный другой способ, который я вижу, - это отправить объект «уведомления» через конвейер (используя channel.write), перехватить объект в декодере и затем выполнить повторную настройку при пересылке сообщения уведомления. В этом случае в конвейере не должно быть параллелизма.
- это был бы лучший / современный способ сделать это?