Class DefaultMessageLockService
java.lang.Object
com.broadleafcommerce.common.messaging.service.DefaultMessageLockService
- All Implemented Interfaces:
- MessageLockService
Service that is responsible for managing locks for the processing of a 
Message. These
 locks are leveraged by the IdempotentMessageConsumptionService to ensure that a message
 is only processed once per listener.- Author:
- Chris Kittrell (ckittrell)
- 
Field SummaryFields
- 
Constructor SummaryConstructorsConstructorDescriptionDefaultMessageLockService(ResourceLockRepository<?, ?> resourceLockRepository) 
- 
Method SummaryModifier and TypeMethodDescriptionprotected ResourceLockRepository<?,?> obtainLock(org.springframework.messaging.Message<?> message, String listenerName) voidpurgeLocks(Duration messageLockTtl) Deletes all message locks that are out of date according to themessageLockTtl.voidpurgeLocks(Duration messageLockTtl, Set<String> additionalLockTypes) Deletes all message locks that are out of date according to themessageLockTtl.voidreleaseLock(String lockToken) Releases the lock so that the relevant message can be processed again.
- 
Field Details- 
MESSAGE_IDEMPOTENCY_KEY- See Also:
 
 
- 
- 
Constructor Details- 
DefaultMessageLockService
 
- 
- 
Method Details- 
obtainLockDescription copied from interface:MessageLockService- Specified by:
- obtainLockin interface- MessageLockService
- Parameters:
- message- The message that is to be locked
- listenerName- The name of the message listener. This value can be used to distinguish this message consumption from that of a different message listener.
- Returns:
- A unique token that can later be used to release the lock
 
- 
releaseLockDescription copied from interface:MessageLockServiceReleases the lock so that the relevant message can be processed again. We primarily want to use this method when an unexpected error is encountered while processing the message.- Specified by:
- releaseLockin interface- MessageLockService
- Parameters:
- lockToken- The unique token that was provided when the lock was obtained
 
- 
purgeLocksDescription copied from interface:MessageLockServiceDeletes all message locks that are out of date according to themessageLockTtl.- Specified by:
- purgeLocksin interface- MessageLockService
- Parameters:
- messageLockTtl- How long the lock should be held. If the lock is too old, then it should be removed.
 
- 
purgeLocksDescription copied from interface:MessageLockServiceDeletes all message locks that are out of date according to themessageLockTtl. By default, this method always deletes the locks that haveJpaResourceLock.getTypeAlias()equal to "Message".- Specified by:
- purgeLocksin interface- MessageLockService
- Parameters:
- messageLockTtl- How long the lock should be held. If the lock is too old, then it should be removed.
- additionalLockTypes- Additional types of locks to be removed.
 
- 
getResourceLockRepository
 
-