クラス 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
ネストされたクラスのサマリー
インターフェース org.springframework.integration.store.MessageGroupStore から継承されたネストクラス / インターフェース
MessageGroupStore.MessageGroupCallback
フィールドのサマリー
クラス org.springframework.integration.store.AbstractMessageGroupStore から継承されたフィールド
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) void
completeGroup
(ObjectSE groupId) この MessageGroup を完成させます。protected MessageGroup
copy
(MessageGroup group) expireMessageGroups で使用されます。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
<?> pollMessageFromGroup
(ObjectSE groupId) このMessageGroup
からのメッセージのポーリング(実装でサポートされている場合は FIFO スタイル)と同時に、ポーリングされたMessage
も削除します。Message
<?> removeMessage
(UUIDSE key) 指定された ID のメッセージを MessageStore から削除し(存在する場合)、それを返します。boolean
removeMessageFromGroupById
(ObjectSE groupId, UUIDSE messageId) グループからメッセージを削除します。void
removeMessageGroup
(ObjectSE groupId) この ID のメッセージグループを削除します。void
removeMessagesFromGroup
(ObjectSE groupId, CollectionSE<Message<?>> messages) グループからのメッセージの削除を永続化します。void
setCopyOnGet
(boolean copyOnGet) false に設定すると、getMessageGroup(Object)
でのグループのコピーが無効になります。void
setGroupCondition
(ObjectSE groupId, StringSE condition) グループに条件文を追加します。void
setLastReleasedSequenceNumberForGroup
(ObjectSE groupId, int sequenceNumber) 最後にリリースされたメッセージのシーケンス番号を設定できます。void
setLazyLoadMessageGroups
(boolean lazyLoadMessageGroups) BasicMessageGroupStore.getMessageGroup(Object)
の結果をPersistentMessageGroup
にラップするかどうかを指定します。グループのメッセージの遅延ロードプロキシデフォルトはtrue
です。void
setLockRegistry
(LockRegistry lockRegistry) クラス org.springframework.integration.store.AbstractMessageGroupStore から継承されたメソッド
addMessageToGroup, expireMessageGroups, getMessageCountForAllMessageGroups, getMessageGroupCount, getMessageGroupFactory, isTimeoutOnIdle, registerMessageGroupExpiryCallback, removeMessagesFromGroup, setExpiryCallbacks, 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
インターフェース 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
setLockRegistry
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
- パラメーター:
groupId
- メッセージを保存するグループ ID。messages
- 追加するメッセージ。
removeMessageGroup
インターフェースからコピーされた説明:BasicMessageGroupStore
この ID のメッセージグループを削除します。- 次で指定:
- インターフェース
BasicMessageGroupStore
のremoveMessageGroup
- パラメーター:
groupId
- 削除するグループの ID。
removeMessagesFromGroup
インターフェースからコピーされた説明:MessageGroupStore
グループからのメッセージの削除を永続化します。- 次で指定:
- インターフェース
MessageGroupStore
のremoveMessagesFromGroup
- パラメーター:
groupId
- メッセージを含むグループの groupId。messages
- 削除するメッセージ。
getMessageFromGroup
インターフェースからコピーされた説明:MessageGroupStore
ID を使用してグループからMessage
を取得します。メッセージがリクエストされたグループに属していない場合は、null
を返します。- 次で指定:
- インターフェース
MessageGroupStore
のgetMessageFromGroup
- パラメーター:
groupId
- メッセージを含むグループの groupId。messageId
- メッセージ ID。- 戻り値:
- リクエストされたグループに属している場合は、ID によるメッセージ。
removeMessageFromGroupById
インターフェースからコピーされた説明:MessageGroupStore
グループからメッセージを削除します。- 次で指定:
- インターフェース
MessageGroupStore
のremoveMessageFromGroupById
- パラメーター:
groupId
- メッセージを含むグループの groupId。messageId
- 削除するメッセージ ID。- 戻り値:
- メッセージが削除された場合は true。
iterator
- 次で指定:
- インターフェース
IterableSE<MessageGroup>
のiterator
- 次で指定:
- インターフェース
MessageGroupStore
のiterator
- 戻り値:
- 現在累積されている
MessageGroup
の反復子。
setGroupCondition
インターフェースからコピーされた説明:MessageGroupStore
グループに条件文を追加します。後でグループの意思決定に使用できます。相関ハンドラーのリリース戦略では、グループ内のすべてのメッセージを繰り返す代わりに、この条件を調べることができます。- 次で指定:
- インターフェース
MessageGroupStore
のsetGroupCondition
- パラメーター:
groupId
- グループ識別子。condition
- グループに保存する条件。
setLastReleasedSequenceNumberForGroup
インターフェースからコピーされた説明:MessageGroupStore
最後にリリースされたメッセージのシーケンス番号を設定できます。ユースケースの並べ替えに使用- 次で指定:
- インターフェース
MessageGroupStore
のsetLastReleasedSequenceNumberForGroup
- パラメーター:
groupId
- グループ識別子。sequenceNumber
- シーケンス番号。
completeGroup
インターフェースからコピーされた説明:MessageGroupStore
これで MessageGroup が完成します。MessageGroup の補完は一般に、このグループに対してそれ以上の変異操作の実行を許可すべきではないことを意味します。たとえば、グループから新しいメッセージを追加 / 削除する試みは許可されるべきではありません。- 次で指定:
- インターフェース
MessageGroupStore
のcompleteGroup
- パラメーター:
groupId
- グループ識別子。
pollMessageFromGroup
インターフェースからコピーされた説明:BasicMessageGroupStore
このMessageGroup
からのメッセージのポーリング(実装でサポートされている場合は FIFO スタイル)と同時に、ポーリングされたMessage
も削除します。- 次で指定:
- インターフェース
BasicMessageGroupStore
のpollMessageFromGroup
- パラメーター:
groupId
- グループ識別子。- 戻り値:
- メッセージ。
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