クラス SimpleMessageStore
java.lang.ObjectSE
org.springframework.integration.store.AbstractBatchingMessageGroupStore
org.springframework.integration.store.AbstractMessageGroupStore
org.springframework.integration.store.SimpleMessageStore
- 実装されているすべてのインターフェース:
IterableSE<MessageGroup>
、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
ネストされたクラスの要約
インターフェース org.springframework.integration.store.MessageGroupStore から継承されたネストクラス / インターフェース
MessageGroupStore.MessageGroupCallback
フィールドのサマリー
クラス org.springframework.integration.store.AbstractMessageGroupStore から継承されたフィールド
GROUP_ID_MUST_NOT_BE_NULL, 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 に入れます。void
addMessagesToGroup
(ObjectSE groupId, Message<?>... messages) グループ ID に関連付けてメッセージを保存します。void
clearMessageGroup
(ObjectSE groupId) protected MessageGroup
copy
(MessageGroup group) expireMessageGroups で使用されます。protected void
doAddMessagesToGroup
(ObjectSE groupId, Message<?>... messages) protected void
doCompleteGroup
(ObjectSE groupId) protected Message
<?> doPollMessageFromGroup
(ObjectSE groupId) protected boolean
doRemoveMessageFromGroupById
(ObjectSE groupId, UUIDSE messageId) protected void
doRemoveMessageGroup
(ObjectSE groupId) protected void
doRemoveMessagesFromGroup
(ObjectSE groupId, CollectionSE<Message<?>> messages) protected void
doSetGroupCondition
(ObjectSE groupId, StringSE condition) protected void
doSetLastReleasedSequenceNumberForGroup
(ObjectSE groupId, int sequenceNumber) getGroupMetadata
(ObjectSE groupId) メッセージをフェッチせずにグループメタデータを取得します。他のすべてのグループプロパティを提供する必要があります。最初のメッセージの ID を含めることができます。Message
<?> getMessage
(UUIDSE key) long
ストア内のメッセージ数を示すオプションの属性。Message
<?> getMessageFromGroup
(ObjectSE groupId, UUIDSE messageId) ID を使用してグループからMessage
を取得します。getMessageGroup
(ObjectSE groupId) このグループ ID でBasicMessageGroupStore.addMessageToGroup(Object, Message)
を使用して保存された、現在 MessageStore にあるすべてのメッセージを返します。CollectionSE
<Message<?>> getMessagesForGroup
(ObjectSE groupId) 指定されたグループ ID のメッセージを取得します。Message
<?> getOneMessageFromGroup
(ObjectSE groupId) MessageGroup
から 1 つのMessage
を返します。iterator()
int
messageGroupSize
(ObjectSE groupId) この MessageGroup のサイズを返します。Message
<?> removeMessage
(UUIDSE key) 指定された ID のメッセージを MessageStore から削除し(存在する場合)、それを返します。void
setCopyOnGet
(boolean copyOnGet) false に設定すると、getMessageGroup(Object)
でのグループのコピーが無効になります。void
setLazyLoadMessageGroups
(boolean lazyLoadMessageGroups) BasicMessageGroupStore.getMessageGroup(Object)
の結果をPersistentMessageGroup
にラップするかどうかを指定します。グループのメッセージの遅延ロードプロキシデフォルトはtrue
です。クラス org.springframework.integration.store.AbstractMessageGroupStore から継承されたメソッド
addMessageToGroup, completeGroup, executeLocked, executeLocked, expireMessageGroups, getLockRegistry, getMessageCountForAllMessageGroups, getMessageGroupCount, getMessageGroupFactory, isTimeoutOnIdle, pollMessageFromGroup, registerMessageGroupExpiryCallback, removeMessageFromGroupById, removeMessageGroup, removeMessagesFromGroup, removeMessagesFromGroup, setExpiryCallbacks, setGroupCondition, setLastReleasedSequenceNumberForGroup, setLockRegistry, setTimeoutOnIdle
クラス org.springframework.integration.store.AbstractBatchingMessageGroupStore から継承されたメソッド
getRemoveBatchSize, setMessageGroupFactory, setRemoveBatchSize
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース org.springframework.integration.store.BasicMessageGroupStore から継承されたメソッド
addMessageToGroup, pollMessageFromGroup, removeMessageGroup
インターフェース java.lang.IterableSE から継承されたメソッド
forEachSE, spliterator
インターフェース org.springframework.integration.store.MessageGroupStore から継承されたメソッド
streamMessagesForGroup
コンストラクターの詳細
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) クラスからコピーされた説明:AbstractMessageGroupStore
BasicMessageGroupStore.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
クラスからコピーされた説明:AbstractMessageGroupStore
expireMessageGroups によって使用されます。グループが現在から期限切れになるまでの間に変更されたかどうかを適切に検出できるように、リーパーの実行時にグループのスナップショットを返す必要があります。永続ストアには必要ないため、デフォルトの動作ではグループのみを返します。- オーバーライド:
- クラス
AbstractMessageGroupStore
のcopy
- パラメーター:
group
- グループ。- 戻り値:
- グループ、またはコピー。
addMessagesToGroup
インターフェースからコピーされた説明:MessageGroupStore
グループ ID に関連付けてメッセージを保存します。これは、メッセージをグループ化するために使用できます。- 次で指定:
- インターフェース
MessageGroupStore
のaddMessagesToGroup
- オーバーライド:
- クラス
AbstractMessageGroupStore
のaddMessagesToGroup
- パラメーター:
groupId
- メッセージを保存するグループ ID。messages
- 追加するメッセージ。
doAddMessagesToGroup
- 次で指定:
- クラス
AbstractMessageGroupStore
のdoAddMessagesToGroup
doRemoveMessageGroup
- 次で指定:
- クラス
AbstractMessageGroupStore
のdoRemoveMessageGroup
doRemoveMessagesFromGroup
- 次で指定:
- クラス
AbstractMessageGroupStore
のdoRemoveMessagesFromGroup
getMessageFromGroup
インターフェースからコピーされた説明:MessageGroupStore
ID を使用してグループから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
- オーバーライド:
- クラス
AbstractMessageGroupStore
のgetGroupMetadata
- パラメーター:
groupId
- グループ ID。- 戻り値:
- メタデータ。
getOneMessageFromGroup
インターフェースからコピーされた説明:MessageGroupStore
MessageGroup
から 1 つのMessage
を返します。- 次で指定:
- インターフェース
MessageGroupStore
のgetOneMessageFromGroup
- パラメーター:
groupId
- グループ識別子。- 戻り値:
Message
getMessagesForGroup
インターフェースからコピーされた説明:MessageGroupStore
指定されたグループ ID のメッセージを取得します。- 次で指定:
- インターフェース
MessageGroupStore
のgetMessagesForGroup
- パラメーター:
groupId
- メッセージを取得するグループ ID。- 戻り値:
- グループのメッセージ。
clearMessageGroup