要求を十分に高速に処理できないサードパーティのサーバーに接続するOutMemoryErrorを実行する。Nettyクライアント限定キュー破棄ポリシー
NioClientSocketChannelFoundoryは、バインドされたキューでExecutorサービスに渡され、ポリシー(ThreadPoolExecutor.DiscardPolicy)を破棄してもOutOfMemoryErrorが残っています。
私には何が欠けていますか?
おかげ
要求を十分に高速に処理できないサードパーティのサーバーに接続するOutMemoryErrorを実行する。Nettyクライアント限定キュー破棄ポリシー
NioClientSocketChannelFoundoryは、バインドされたキューでExecutorサービスに渡され、ポリシー(ThreadPoolExecutor.DiscardPolicy)を破棄してもOutOfMemoryErrorが残っています。
私には何が欠けていますか?
おかげ
あなたのクライアント側ネッティーチャンネルの書き込みバッファがいっぱいになると、サーバーが十分にそれが速読されていない場合は、クライアント側でOutOfMemoryError
が表示されます。それを避けるには、Channel.isWritable()
がfalse
を返す場合には、書面を停止する必要があります。 Channel.writable' changes. Then, you can check again if
Channel.isWritable()returns
trueのステータスのときにchannelInterestOpsChanged
イベントで通知され、書き込みが続行されます。
保留中のデータを破棄しても問題がなければ、Channel.isWritable()
がfalse
を返す場合は、Channel.write()
に電話しないでください。
Channel.writable
のプロパティが変更され、透かしプロパティがNioSocketChannelConfig
で提供されるように設定できます。また、このテクニックを使用する「破棄」の例を見てください。
私はあなたにお知らせしようとします。 – user432024
働いたようです。ところで、私は境界のあるワーカープールを使用して気にする必要がありますか、またはサンプルを使用してキャッシュされたものを使用するだけですか? ありがとう – user432024
ワーカープールはキャッシュされている必要があります。 – trustin