クラス SimpleMessageStore
java.lang.ObjectSE
org.springframework.integration.store.AbstractBatchingMessageGroupStore
org.springframework.integration.store.AbstractMessageGroupStore
org.springframework.integration.store.SimpleMessageStore
- 実装済みのインターフェース一覧:
IterableSE<MessageGroup>, IntegrationPattern, BasicMessageGroupStore, ChannelMessageStore, MessageGroupStore, MessageStore
public class SimpleMessageStore
extends AbstractMessageGroupStore
implements MessageStore, ChannelMessageStore
MessageStore および MessageGroupStore のマップベースのメモリ内実装。ストアの最大容量を強制します。- 導入:
- 2.0
- 作成者:
- Iwein Fuld, Mark Fisher, Dave Syer, Oleg Zhurakousky, Gary Russell, Ryan Barker, Artem Bilan, Youbin Wu
ネストされたクラスの概要
インターフェース MessageGroupStore から継承されたネストクラス / インターフェース
MessageGroupStore.MessageGroupCallbackフィールド概要
クラス AbstractMessageGroupStore から継承されたフィールド
INTERRUPTED_WHILE_OBTAINING_LOCK, loggerコンストラクター概要
コンストラクターコンストラクター説明容量無制限の SimpleMessageStore を作成します。SimpleMessageStore(int capacity) 個別のメッセージとグループ化されたメッセージに対して同じ容量の SimpleMessageStore を作成します。SimpleMessageStore(int individualCapacity, int groupCapacity) 指定された容量によって制限される最大サイズ、または指定された容量が 1 未満の場合は無制限のサイズで SimpleMessageStore を作成します。SimpleMessageStore(int individualCapacity, int groupCapacity, long upperBoundTimeout) 最大サイズが指定された容量とミリ秒単位のタイムアウトによって制限された SimpleMessageStore を作成して、ストアの空のスロットを待機します。SimpleMessageStore(int individualCapacity, int groupCapacity, long upperBoundTimeout, LockRegistry<?> lockRegistry) 指定された容量によって制限される最大サイズ、ストア内の空のスロットを待機するためのミリ秒単位のタイムアウト、メッセージグループ操作の同時実行のための LockRegistry を使用して SimpleMessageStore を作成します。SimpleMessageStore(int individualCapacity, int groupCapacity, LockRegistry<?> lockRegistry) 指定された容量によって制限される最大サイズの SimpleMessageStore と、メッセージグループ操作の同時実行性のための LockRegistry を作成します。方法の概要
修飾子と型メソッド説明<T> Message<T> addMessage(Message<T> message) 提供されたメッセージを MessageStore に入れます。voidaddMessagesToGroup(ObjectSE groupId, Message<?>... messages) グループ ID に関連付けてメッセージを保存します。voidclearMessageGroup(ObjectSE groupId) protected MessageGroupcopy(MessageGroup group) expireMessageGroups で使用されます。protected voiddoAddMessagesToGroup(ObjectSE groupId, Message<?>... messages) protected voiddoCompleteGroup(ObjectSE groupId) protected @Nullable Message<?> doPollMessageFromGroup(ObjectSE groupId) protected booleandoRemoveMessageFromGroupById(ObjectSE groupId, UUIDSE messageId) protected voiddoRemoveMessageGroup(ObjectSE groupId) protected voiddoRemoveMessagesFromGroup(ObjectSE groupId, CollectionSE<Message<?>> messages) protected voiddoSetGroupCondition(ObjectSE groupId, StringSE condition) protected voiddoSetLastReleasedSequenceNumberForGroup(ObjectSE groupId, int sequenceNumber) getGroupMetadata(ObjectSE groupId) メッセージをフェッチせずにグループメタデータを取得します。他のすべてのグループプロパティを提供する必要があります。最初のメッセージの ID を含めることができます。@Nullable Message<?> getMessage(UUIDSE key) longストア内のメッセージ数を示すオプションの属性。@Nullable Message<?> getMessageFromGroup(ObjectSE groupId, UUIDSE messageId) ID を使用してグループからMessageを取得します。getMessageGroup(ObjectSE groupId) このグループ ID でBasicMessageGroupStore.addMessageToGroup(Object, Message)を使用して保存された、現在 MessageStore にあるすべてのメッセージを返します。@Nullable MessageMetadataCollectionSE<Message<?>> getMessagesForGroup(ObjectSE groupId) 指定されたグループ ID のメッセージを取得します。@Nullable Message<?> getOneMessageFromGroup(ObjectSE groupId) MessageGroupから 1 つのMessageを返します。iterator()intmessageGroupSize(ObjectSE groupId) この MessageGroup のサイズを返します。@Nullable Message<?> removeMessage(UUIDSE key) 指定された ID のメッセージを MessageStore から削除し(存在する場合)、それを返します。voidsetCopyOnGet(boolean copyOnGet) false に設定すると、getMessageGroup(Object)でのグループのコピーが無効になります。voidsetLazyLoadMessageGroups(boolean lazyLoadMessageGroups) BasicMessageGroupStore.getMessageGroup(Object)の結果をPersistentMessageGroupにラップするかどうかを指定します。グループのメッセージの遅延ロードプロキシデフォルトはtrueです。クラス AbstractMessageGroupStore から継承されたメソッド
addMessageToGroup, completeGroup, executeLocked, executeLocked, expireMessageGroups, getLockRegistry, getMessageCountForAllMessageGroups, getMessageGroupCount, getMessageGroupFactory, isTimeoutOnIdle, pollMessageFromGroup, registerMessageGroupExpiryCallback, removeMessageFromGroupById, removeMessageGroup, removeMessagesFromGroup, removeMessagesFromGroup, setExpiryCallbacks, setGroupCondition, setLastReleasedSequenceNumberForGroup, setLockRegistry, setTimeoutOnIdleクラス AbstractBatchingMessageGroupStore から継承されたメソッド
getRemoveBatchSize, setMessageGroupFactory, setRemoveBatchSizeクラス ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSEインターフェース BasicMessageGroupStore から継承されたメソッド
addMessageToGroup, pollMessageFromGroup, removeMessageGroupインターフェース IterableSE から継承されたメソッド
forEachSE, spliteratorインターフェース MessageGroupStore から継承されたメソッド
streamMessagesForGroupインターフェース MessageStore から継承されたメソッド
getIntegrationPatternType
コンストラクターの詳細
SimpleMessageStore
public SimpleMessageStore(int individualCapacity, int groupCapacity) 最大サイズが指定された容量によって制限されるか、指定された容量が 1 未満の場合は無制限のサイズで SimpleMessageStore を作成します。容量は、addMessage(Message)を介して保存されたメッセージとAbstractMessageGroupStore.addMessageToGroup(Object, Message)を介して保存されたメッセージに個別に適用されます。どちらの場合も、容量は保存できるメッセージの数に適用され、その制限に達すると、別のメッセージを保存しようとすると例外が発生します。- パラメーター:
individualCapacity- メッセージ容量。groupCapacity- 各グループの容量。
SimpleMessageStore
public SimpleMessageStore(int individualCapacity, int groupCapacity, long upperBoundTimeout) 最大サイズが指定された容量とミリ秒単位のタイムアウトによって制限された SimpleMessageStore を作成して、ストアの空のスロットを待機します。- パラメーター:
individualCapacity- メッセージ容量。groupCapacity- 各グループの容量。upperBoundTimeout- ストアが最大容量に達した場合に待機する時間。- 導入:
- 4.3
- 関連事項:
SimpleMessageStore
指定された容量によって制限される最大サイズの SimpleMessageStore と、メッセージグループ操作の同時実行性のための LockRegistry を作成します。- パラメーター:
individualCapacity- メッセージ容量。groupCapacity- 各グループの容量。lockRegistry- ロックレジストリ。- 関連事項:
SimpleMessageStore
public SimpleMessageStore(int individualCapacity, int groupCapacity, long upperBoundTimeout, LockRegistry<?> lockRegistry) 指定された容量によって制限される最大サイズ、ストア内の空のスロットを待機するためのミリ秒単位のタイムアウト、メッセージグループ操作の同時実行のための LockRegistry を使用して SimpleMessageStore を作成します。- パラメーター:
individualCapacity- メッセージ容量。groupCapacity- 各グループの容量。upperBoundTimeout- ストアが最大容量にある場合に待機する時間lockRegistry- ロックレジストリ。- 導入:
- 4.3
SimpleMessageStore
public SimpleMessageStore(int capacity) 個別のメッセージとグループ化されたメッセージに対して同じ容量の SimpleMessageStore を作成します。- パラメーター:
capacity- 容量。
SimpleMessageStore
public SimpleMessageStore()容量無制限の SimpleMessageStore を作成します。
方法の詳細
setCopyOnGet
public void setCopyOnGet(boolean copyOnGet) false に設定すると、getMessageGroup(Object)でのグループのコピーが無効になります。4.1 以降、これはデフォルトで false です。- パラメーター:
copyOnGet- コピーする場合は true、コピーしない場合は false。- 導入:
- 4.0.1
setLazyLoadMessageGroups
public void setLazyLoadMessageGroups(boolean lazyLoadMessageGroups) クラスからコピーされた説明:AbstractMessageGroupStoreBasicMessageGroupStore.getMessageGroup(Object)の結果をPersistentMessageGroupにラップするかどうかを指定します。グループのメッセージの遅延ロードプロキシデフォルトはtrueです。ターゲットロジックは
SimpleMessageGroupFactory.GroupType.PERSISTENTに基づいています。- オーバーライド:
- クラス
AbstractMessageGroupStoreのsetLazyLoadMessageGroups - パラメーター:
lazyLoadMessageGroups- 使用するbooleanフラグ。
getMessageCount
インターフェースからコピーされた説明:MessageStoreストア内のメッセージ数を示すオプションの属性。実装は例外をスローすることで応答を拒否する場合があります。- 次で指定:
- インターフェース
MessageStore内のgetMessageCount - 戻り値:
- メッセージの数。
addMessage
インターフェースからコピーされた説明:MessageStore提供されたメッセージを MessageStore に格納します。ストアは内部的にメッセージを変更する必要がある可能性があり、その場合、戻り値は入力値と異なる場合があります。戻り値の ID は、MessageStore.getMessage(UUID)とMessageStore.removeMessage(UUID)が正しく動作するためのインデックスとして使用されます。メッセージは不変であるため、同じメッセージを複数回格納しても何も起こりません。- 次で指定:
- インターフェース
MessageStore内のaddMessage - 型パラメーター:
T- ペイロード型。- パラメーター:
message- メッセージ。- 戻り値:
- 保存されたメッセージ。
getMessage
- 次で指定:
- インターフェース
MessageStore内のgetMessage - パラメーター:
key- メッセージ識別子。- 戻り値:
- 指定された ID のメッセージ。MessageStore にその ID のメッセージが存在しない場合は null。
getMessageMetadata
インターフェースからコピーされた説明:MessageStore- 次で指定:
- インターフェース
MessageStore内のgetMessageMetadata - パラメーター:
id- メッセージ識別子。- 戻り値:
- 指定された ID の MessageMetadata、またはその ID のメッセージが MessageStore に存在しないか、メッセージにメタデータがない場合(以前のバージョンのレガシーメッセージ)は null。
removeMessage
インターフェースからコピーされた説明:MessageStore指定された ID を持つメッセージが MessageStore から削除されます (存在する場合)。その ID を持つメッセージがストアに存在しない場合は、nullが返されます。このメソッドがMessageGroupStoreに実装されている場合、このメッセージを保持するグループがない場合にのみ、メッセージはストアから削除されます。- 次で指定:
- インターフェース
MessageStore内のremoveMessage - パラメーター:
key- メッセージ識別子。- 戻り値:
- メッセージ (ある場合)。
getMessageGroup
インターフェースからコピーされた説明:BasicMessageGroupStoreこのグループ ID でBasicMessageGroupStore.addMessageToGroup(Object, Message)を使用して保存された、現在 MessageStore にあるすべてのメッセージを返します。- 次で指定:
- インターフェース
BasicMessageGroupStore内のgetMessageGroup - パラメーター:
groupId- グループ識別子。- 戻り値:
- メッセージのグループ。このキーにメッセージが存在しない場合は空です。
copy
クラスからコピーされた説明:AbstractMessageGroupStoreexpireMessageGroups によって使用されます。グループが現在から期限切れになるまでの間に変更されたかどうかを適切に検出できるように、リーパーの実行時にグループのスナップショットを返す必要があります。永続ストアには必要ないため、デフォルトの動作ではグループのみを返します。- オーバーライド:
- クラス
AbstractMessageGroupStoreのcopy - パラメーター:
group- グループ。- 戻り値:
- グループ、またはコピー。
addMessagesToGroup
インターフェースからコピーされた説明:MessageGroupStoreグループ ID に関連付けてメッセージを保存します。これは、メッセージをグループ化するために使用できます。- 次で指定:
- インターフェース
MessageGroupStore内のaddMessagesToGroup - オーバーライド:
- クラス
AbstractMessageGroupStoreのaddMessagesToGroup - パラメーター:
groupId- メッセージを保存するグループ ID。messages- 追加するメッセージ。
doAddMessagesToGroup
- 次で指定:
- クラス
AbstractMessageGroupStoreのdoAddMessagesToGroup
doRemoveMessageGroup
- 次で指定:
- クラス
AbstractMessageGroupStoreのdoRemoveMessageGroup
doRemoveMessagesFromGroup
- 次で指定:
- クラス
AbstractMessageGroupStoreのdoRemoveMessagesFromGroup
getMessageFromGroup
インターフェースからコピーされた説明:MessageGroupStoreID を使用してグループからMessageを取得します。メッセージがリクエストされたグループに属していない場合は、nullを返します。- 次で指定:
- インターフェース
MessageGroupStore内のgetMessageFromGroup - パラメーター:
groupId- メッセージを含むグループの groupId。messageId- メッセージ ID。- 戻り値:
- リクエストされたグループに属している場合は、ID によるメッセージ。
doRemoveMessageFromGroupById
- オーバーライド:
- クラス
AbstractMessageGroupStoreのdoRemoveMessageFromGroupById
iterator
- 次で指定:
- インターフェース
IterableSE<MessageGroup>内のiterator - 次で指定:
- インターフェース
MessageGroupStore内のiterator - 戻り値:
- 現在累積されている
MessageGroupの反復子。
doSetGroupCondition
- 次で指定:
- クラス
AbstractMessageGroupStoreのdoSetGroupCondition
doSetLastReleasedSequenceNumberForGroup
doCompleteGroup
- 次で指定:
- クラス
AbstractMessageGroupStoreのdoCompleteGroup
doPollMessageFromGroup
- 次で指定:
- クラス
AbstractMessageGroupStoreのdoPollMessageFromGroup
messageGroupSize
インターフェースからコピーされた説明:BasicMessageGroupStoreこの MessageGroup のサイズを返します。- 次で指定:
- インターフェース
BasicMessageGroupStore内のmessageGroupSize - パラメーター:
groupId- グループ識別子。- 戻り値:
- サイズ。
getGroupMetadata
インターフェースからコピーされた説明:MessageGroupStoreメッセージをフェッチせずにグループメタデータを取得します。他のすべてのグループプロパティを提供する必要があります。最初のメッセージの ID を含めることができます。- 次で指定:
- インターフェース
MessageGroupStore内のgetGroupMetadata - パラメーター:
groupId- グループ ID。- 戻り値:
- メタデータ。
getOneMessageFromGroup
インターフェースからコピーされた説明:MessageGroupStoreMessageGroupから 1 つのMessageを返します。- 次で指定:
- インターフェース
MessageGroupStore内のgetOneMessageFromGroup - パラメーター:
groupId- グループ識別子。- 戻り値:
Message
getMessagesForGroup
インターフェースからコピーされた説明:MessageGroupStore指定されたグループ ID のメッセージを取得します。- 次で指定:
- インターフェース
MessageGroupStore内のgetMessagesForGroup - パラメーター:
groupId- メッセージを取得するグループ ID。- 戻り値:
- グループのメッセージ。
clearMessageGroup