public class SimpleMessageStore extends AbstractMessageGroupStore implements MessageStore, ChannelMessageStore
MessageStore および MessageGroupStore のマップベースのメモリ内実装。ストアの最大容量を強制します。MessageGroupStore.MessageGroupCallbacklogger| コンストラクターと説明 |
|---|
SimpleMessageStore() 容量無制限の SimpleMessageStore を作成します |
SimpleMessageStore(int capacity) 個別のメッセージとグループ化されたメッセージに対して同じ容量の SimpleMessageStore を作成します。 |
SimpleMessageStore(int individualCapacity, int groupCapacity) 指定された容量によって制限される最大サイズ、または指定された容量が 1 未満の場合は無制限のサイズで SimpleMessageStore を作成します。 |
SimpleMessageStore(int individualCapacity, int groupCapacity, LockRegistry lockRegistry) 指定された容量によって制限される最大サイズの SimpleMessageStore と、メッセージグループ操作の同時実行性のための LockRegistry を作成します。 |
SimpleMessageStore(int individualCapacity, int groupCapacity, long upperBoundTimeout) 指定された容量とミリ秒単位のタイムアウトによって制限された最大サイズで SimpleMessageStore を作成し、ストアの空のスロットを待機します。 |
SimpleMessageStore(int individualCapacity, int groupCapacity, long upperBoundTimeout, LockRegistry lockRegistry) 指定された容量によって制限される最大サイズ、ストア内の空のスロットを待機するためのミリ秒単位のタイムアウト、メッセージグループ操作の同時実行のための LockRegistry を使用して SimpleMessageStore を作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
<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 で使用されます。 |
MessageGroupMetadata | getGroupMetadata(ObjectSE groupId) メッセージをフェッチせずにグループメタデータを取得します。他のすべてのグループプロパティを提供する必要があります。最初のメッセージの ID を含めることができます。 |
Message<?> | getMessage(UUIDSE key) |
long | getMessageCount() ストア内のメッセージ数を示すオプションの属性。 |
MessageGroup | getMessageGroup(ObjectSE groupId) このグループ ID で BasicMessageGroupStore.addMessageToGroup(Object, Message) を使用して保存された、現在 MessageStore にあるすべてのメッセージを返します。 |
MessageMetadata | getMessageMetadata(UUIDSE id) |
CollectionSE<Message<?>> | getMessagesForGroup(ObjectSE groupId) 指定されたグループ ID のメッセージを取得します。 |
Message<?> | getOneMessageFromGroup(ObjectSE groupId)MessageGroup から 1 つの Message を返します。 |
IteratorSE<MessageGroup> | iterator() |
int | messageGroupSize(ObjectSE groupId) この MessageGroup のサイズを返します。 |
Message<?> | pollMessageFromGroup(ObjectSE groupId) この MessageGroup からのメッセージをポーリングし(実装でサポートされている場合は FIFO スタイルで)、ポーリングされた Message も削除します |
Message<?> | removeMessage(UUIDSE key) 指定された ID のメッセージを MessageStore から削除し(存在する場合)、それを返します。 |
void | removeMessageGroup(ObjectSE groupId) この ID のメッセージグループを削除します。 |
void | removeMessagesFromGroup(ObjectSE groupId, CollectionSE<Message<?>> messages) グループからのメッセージの削除を永続化します。 |
void | setCopyOnGet(boolean copyOnGet)false に設定すると、 getMessageGroup(Object) でのグループのコピーが無効になります。 |
void | setLastReleasedSequenceNumberForGroup(ObjectSE groupId, int sequenceNumber) 最後にリリースされたメッセージのシーケンス番号を設定できます。 |
void | setLazyLoadMessageGroups(boolean lazyLoadMessageGroups)BasicMessageGroupStore.getMessageGroup(Object) の結果を PersistentMessageGroup にラップするかどうかを指定します。グループのメッセージの遅延ロードプロキシデフォルトは true です。 |
void | setLockRegistry(LockRegistry lockRegistry) |
addMessageToGroup, expireMessageGroups, getMessageCountForAllMessageGroups, getMessageGroupCount, getMessageGroupFactory, isTimeoutOnIdle, registerMessageGroupExpiryCallback, removeMessagesFromGroup, setExpiryCallbacks, setTimeoutOnIdlegetRemoveBatchSize, setMessageGroupFactory, setRemoveBatchSizecloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEaddMessageToGroupforEachSE, spliteratorSEpublic SimpleMessageStore(int individualCapacity,
int groupCapacity)addMessage(Message) を介して保存されたメッセージと AbstractMessageGroupStore.addMessageToGroup(Object, Message) を介して保存されたメッセージに個別に適用されます。どちらの場合も、容量は保存できるメッセージの数に適用され、その制限に達すると、別のメッセージを保存しようとすると例外が発生します。individualCapacity - メッセージ容量。groupCapacity - 各グループの容量。public SimpleMessageStore(int individualCapacity,
int groupCapacity,
long upperBoundTimeout)individualCapacity - メッセージ容量。groupCapacity - 各グループの容量。upperBoundTimeout - ストアが最大容量に達した場合に待機する時間。SimpleMessageStore(int, int)public SimpleMessageStore(int individualCapacity,
int groupCapacity,
LockRegistry lockRegistry)individualCapacity - メッセージ容量。groupCapacity - 各グループの容量。lockRegistry - ロックレジストリ。SimpleMessageStore(int, int, long, LockRegistry)public SimpleMessageStore(int individualCapacity,
int groupCapacity,
long upperBoundTimeout,
LockRegistry lockRegistry)individualCapacity - メッセージ容量。groupCapacity - 各グループの容量。upperBoundTimeout - ストアが最大容量にある場合に待機する時間 lockRegistry - ロックレジストリ。public SimpleMessageStore(int capacity)
capacity - 容量。public SimpleMessageStore()
public void setCopyOnGet(boolean copyOnGet)
getMessageGroup(Object) でのグループのコピーが無効になります。4.1 以降、これはデフォルトで false です。copyOnGet - コピーする場合は true、コピーしない場合は false。public void setLockRegistry(LockRegistry lockRegistry)
public void setLazyLoadMessageGroups(boolean lazyLoadMessageGroups)
AbstractMessageGroupStoreBasicMessageGroupStore.getMessageGroup(Object) の結果を PersistentMessageGroup にラップするかどうかを指定します。グループのメッセージの遅延ロードプロキシデフォルトは true です。 ターゲットロジックは SimpleMessageGroupFactory.GroupType.PERSISTENT に基づいています。
AbstractMessageGroupStore の setLazyLoadMessageGroups lazyLoadMessageGroups - 使用する boolean フラグ。@ManagedAttribute public long getMessageCount()
MessageStoreMessageStore 内の getMessageCount public <T> Message<T> addMessage(Message<T> message)
MessageStoreMessageStore.getMessage(UUID) および MessageStore.removeMessage(UUID) が正しく動作するようにインデックスとして使用されます。メッセージは不変であるため、同じメッセージを複数回入力しても何も起こりません。MessageStore 内の addMessage T - ペイロード型。message - メッセージ。public Message<?> getMessage(UUIDSE key)
MessageStore 内の getMessage key - メッセージ識別子。public MessageMetadata getMessageMetadata(UUIDSE id)
MessageStoreMessageStore 内の getMessageMetadata id - メッセージ識別子。public Message<?> removeMessage(UUIDSE key)
MessageStoreMessageStore 内の removeMessage key - メッセージ識別子。public MessageGroup getMessageGroup(ObjectSE groupId)
BasicMessageGroupStoreBasicMessageGroupStore.addMessageToGroup(Object, Message) を使用して保存された、現在 MessageStore にあるすべてのメッセージを返します。BasicMessageGroupStore 内の getMessageGroup groupId - グループ識別子。protected MessageGroup copy(MessageGroup group)
AbstractMessageGroupStoreAbstractMessageGroupStore の copy group - グループ。public void addMessagesToGroup(ObjectSE groupId, Message<?>... messages)
MessageGroupStoreMessageGroupStore 内の addMessagesToGroup groupId - メッセージを保存するグループ ID。messages - 追加するメッセージ。public void removeMessageGroup(ObjectSE groupId)
BasicMessageGroupStoreBasicMessageGroupStore 内の removeMessageGroup groupId - 削除するグループの ID。public void removeMessagesFromGroup(ObjectSE groupId, CollectionSE<Message<?>> messages)
MessageGroupStoreMessageGroupStore 内の removeMessagesFromGroup groupId - メッセージを含むグループの groupId。messages - 削除するメッセージ。public IteratorSE<MessageGroup> iterator()
IterableSE<MessageGroup> 内の iteratorSE MessageGroupStore 内の iterator MessageGroup の反復子。public void setLastReleasedSequenceNumberForGroup(ObjectSE groupId, int sequenceNumber)
MessageGroupStoreMessageGroupStore 内の setLastReleasedSequenceNumberForGroup groupId - グループ識別子。sequenceNumber - シーケンス番号。public void completeGroup(ObjectSE groupId)
MessageGroupStoreMessageGroupStore 内の completeGroup groupId - グループ識別子。public Message<?> pollMessageFromGroup(ObjectSE groupId)
BasicMessageGroupStoreMessageGroup からのメッセージをポーリングし(実装でサポートされている場合は FIFO スタイルで)、ポーリングされた Message も削除します BasicMessageGroupStore 内の pollMessageFromGroup groupId - グループ識別子。public int messageGroupSize(ObjectSE groupId)
BasicMessageGroupStoreBasicMessageGroupStore 内の messageGroupSize groupId - グループ識別子。public MessageGroupMetadata getGroupMetadata(ObjectSE groupId)
MessageGroupStoreMessageGroupStore 内の getGroupMetadata AbstractMessageGroupStore の getGroupMetadata groupId - グループ ID。public Message<?> getOneMessageFromGroup(ObjectSE groupId)
MessageGroupStoreMessageGroup から 1 つの Message を返します。MessageGroupStore 内の getOneMessageFromGroup groupId - グループ識別子。Messagepublic CollectionSE<Message<?>> getMessagesForGroup(ObjectSE groupId)
MessageGroupStoreMessageGroupStore 内の getMessagesForGroup groupId - メッセージを取得するグループ ID。public void clearMessageGroup(ObjectSE groupId)