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