送受信メッセージの形式を定期的に変更する必要があるサーバーを作成しています。これが起こったとき、サーバは、将来のすべてのメッセージが新しいフォーマットを有するという通知を送信し、クライアントがそのackを送信するまで古いフォーマットで受信した全てを読み取るべきである。パイプラインの再構成のためにパイプライン上で書き込みをブロックするにはどうすればよいですか?
私はすべてのパイプラインで共有されているデコーダへの参照を保持し、必要に応じて外部から再構成することを考えました。この場合、並行性が心配です。
- 私はデコーダで作業している間にパイプラインで書き込みが処理されないようにするにはどうすればよいですか?
- と、 の通知が再構成後に最初に処理されるメッセージであることを確認する方法はありますか?
私が見る他の唯一の方法は、パイプラインを通じて(channel.writeを使用して) "通知"オブジェクトを送信し、デコーダでオブジェクトを捕捉し、通知メッセージを転送しながら再構成を行うことです。この場合、パイプラインには並行性があってはいけません。
- これはこれを行うための最善の方法ですか?