Class PostgresqlDurableQueuesBuilder
java.lang.Object
dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueuesBuilder
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbuild()setJsonSerializer(dk.cloudcreate.essentials.components.foundation.json.JSONSerializer jsonSerializer) setMessageHandlingTimeout(Duration messageHandlingTimeout) setMultiTableChangeListener(dk.cloudcreate.essentials.components.foundation.postgresql.MultiTableChangeListener<dk.cloudcreate.essentials.components.foundation.postgresql.TableChangeNotification> multiTableChangeListener) setQueuePollingOptimizerFactory(Function<dk.cloudcreate.essentials.components.foundation.messaging.queue.operations.ConsumeFromQueue, dk.cloudcreate.essentials.components.foundation.messaging.queue.QueuePollingOptimizer> queuePollingOptimizerFactory) setSharedQueueTableName(String sharedQueueTableName) setTransactionalMode(dk.cloudcreate.essentials.components.foundation.messaging.queue.TransactionalMode transactionalMode) setUnitOfWorkFactory(dk.cloudcreate.essentials.components.foundation.transaction.jdbi.HandleAwareUnitOfWorkFactory<? extends dk.cloudcreate.essentials.components.foundation.transaction.jdbi.HandleAwareUnitOfWork> unitOfWorkFactory)
-
Constructor Details
-
PostgresqlDurableQueuesBuilder
public PostgresqlDurableQueuesBuilder()
-
-
Method Details
-
setUnitOfWorkFactory
public PostgresqlDurableQueuesBuilder setUnitOfWorkFactory(dk.cloudcreate.essentials.components.foundation.transaction.jdbi.HandleAwareUnitOfWorkFactory<? extends dk.cloudcreate.essentials.components.foundation.transaction.jdbi.HandleAwareUnitOfWork> unitOfWorkFactory) - Parameters:
unitOfWorkFactory- theUnitOfWorkFactoryneeded to access the database- Returns:
- this builder instance
-
setJsonSerializer
public PostgresqlDurableQueuesBuilder setJsonSerializer(dk.cloudcreate.essentials.components.foundation.json.JSONSerializer jsonSerializer) - Parameters:
jsonSerializer- Set theJSONSerializerthat is used to serialize/deserialize message payloads.
If not set, thenJacksonJSONSerializerwith thePostgresqlDurableQueues.createDefaultObjectMapper()will be used- Returns:
- this builder instance
-
setMultiTableChangeListener
public PostgresqlDurableQueuesBuilder setMultiTableChangeListener(dk.cloudcreate.essentials.components.foundation.postgresql.MultiTableChangeListener<dk.cloudcreate.essentials.components.foundation.postgresql.TableChangeNotification> multiTableChangeListener) - Parameters:
multiTableChangeListener- optionalMultiTableChangeListenerthat allowsPostgresqlDurableQueuesto useQueuePollingOptimizer- Returns:
- this builder instance
-
setQueuePollingOptimizerFactory
public PostgresqlDurableQueuesBuilder setQueuePollingOptimizerFactory(Function<dk.cloudcreate.essentials.components.foundation.messaging.queue.operations.ConsumeFromQueue, dk.cloudcreate.essentials.components.foundation.messaging.queue.QueuePollingOptimizer> queuePollingOptimizerFactory) - Parameters:
queuePollingOptimizerFactory- optionalQueuePollingOptimizerfactory that creates aQueuePollingOptimizerperConsumeFromQueuecommand - if set to nullPostgresqlDurableQueues.createQueuePollingOptimizerFor(ConsumeFromQueue)is used instead- Returns:
- this builder instance
-
setMessageHandlingTimeout
- Parameters:
messageHandlingTimeout- Only required iftransactionalModeisTransactionalMode.SingleOperationTransaction.
The parameter defines the timeout for messages being delivered, but haven't yet been acknowledged. After this timeout the message delivery will be reset and the message will again be a candidate for delivery
Default is 30 seconds- Returns:
- this builder instance
-
setTransactionalMode
public PostgresqlDurableQueuesBuilder setTransactionalMode(dk.cloudcreate.essentials.components.foundation.messaging.queue.TransactionalMode transactionalMode) - Parameters:
transactionalMode- TheTransactionalModefor thisDurableQueuesinstance. If set toTransactionalMode.SingleOperationTransactionthen the consumer MUST call theDurableQueues.acknowledgeMessageAsHandled(AcknowledgeMessageAsHandled)explicitly in a newUnitOfWork
Note: The default consumer callsDurableQueues.acknowledgeMessageAsHandled(AcknowledgeMessageAsHandled)after successful message handling Default valueTransactionalMode.SingleOperationTransaction- Returns:
- this builder instance
-
build
-