public class OrderedMessageChannelDecorator extends ObjectSE implements MessageChannel
ExecutorSubscribableChannel
のデコレータ。メッセージは一度に 1 つずつ送信され、prevoius が処理されると次のメッセージが解放されます。このデコレータは、セッションごとに適用することを目的としています。INDEFINITE_TIMEOUT
コンストラクターと説明 |
---|
OrderedMessageChannelDecorator(MessageChannel channel, Log logger) |
修飾子と型 | メソッドと説明 |
---|---|
static void | configureInterceptor(MessageChannel channel, boolean preserveOrder) メッセージのヘッダーにある場合は、完了タスクを呼び出す ExecutorChannelInterceptor をインストールまたは削除します。 |
static RunnableSE | getNextMessageTask(Message<?> message) 見つかった場合は、次のメッセージを解放するタスクを取得します。 |
boolean | send(Message<?> message) Message をこのチャネルに送信します。 |
boolean | send(Message<?> message, long timeout) メッセージを送信し、メッセージが受け入れられるか、指定されたタイムアウト期間が経過するまでブロックします。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public OrderedMessageChannelDecorator(MessageChannel channel, Log logger)
public boolean send(Message<?> message)
MessageChannel
Message
を送信します。メッセージが正常に送信されると、メソッドは true
を返します。致命的でない理由でメッセージを送信できない場合、メソッドは false
を返します。このメソッドは、回復不可能なエラーが発生した場合に RuntimeException をスローすることもあります。 このメソッドは、実装によっては無期限にブロックされる場合があります。最大待機時間を提供するには、MessageChannel.send(Message, long)
を使用します。
MessageChannel
の send
message
- 送信するメッセージ public boolean send(Message<?> message, long timeout)
MessageChannel
MessageChannel
の send
message
- 送信するメッセージ timeout
- ミリ秒単位のタイムアウトまたは MessageChannel.INDEFINITE_TIMEOUT
true
、送信の割り込みのタイムアウトが含まれていない場合は false
@Nullable public static RunnableSE getNextMessageTask(Message<?> message)
public static void configureInterceptor(MessageChannel channel, boolean preserveOrder)
ExecutorChannelInterceptor
をインストールまたは削除します。channel
- 構成するチャネル preserveOrder
- オーダーまたは公開を保持するかどうか。"true" の場合はインターセプターが挿入され、"false" の場合は削除されます。