Class JetStreamPushConsumerAdvice
java.lang.Object
io.micronaut.nats.jetstream.intercept.JetStreamPushConsumerAdvice
- All Implemented Interfaces:
io.micronaut.context.processor.AnnotationProcessor<PushConsumer,,io.micronaut.inject.ExecutableMethod<?, ?>> io.micronaut.context.processor.ExecutableMethodProcessor<PushConsumer>,PushConsumerRegistry,AutoCloseable
@Singleton
@Bean(preDestroy="close")
public class JetStreamPushConsumerAdvice
extends Object
implements io.micronaut.context.processor.ExecutableMethodProcessor<PushConsumer>, AutoCloseable, PushConsumerRegistry
An
ExecutableMethodProcessor that will process all
beans annotated with
JetStreamListener.
It creates and subscribes the relevant methods as consumers to Jetstream streams.- Since:
- 4.0.0
- Author:
- Joachim Grimm
-
Constructor Summary
ConstructorsConstructorDescriptionJetStreamPushConsumerAdvice(io.micronaut.context.BeanContext beanContext, NatsBinderRegistry binderRegistry, JetStreamListenerExceptionHandler exceptionHandler, io.micronaut.runtime.ApplicationConfiguration applicationConfiguration) Default constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()io.nats.client.JetStreamSubscriptionnewSubscription(String subject, io.nats.client.PushSubscribeOptions pushSubscribeOptions, String queue) Create a new push consumer with the default connection.io.nats.client.JetStreamSubscriptionnewSubscription(String connectionName, String subject, io.nats.client.PushSubscribeOptions pushSubscribeOptions, String queue) Create a new push consumer from the given connection name.voidprocess(io.micronaut.inject.BeanDefinition<?> beanDefinition, io.micronaut.inject.ExecutableMethod<?, ?> method)
-
Constructor Details
-
JetStreamPushConsumerAdvice
public JetStreamPushConsumerAdvice(io.micronaut.context.BeanContext beanContext, NatsBinderRegistry binderRegistry, JetStreamListenerExceptionHandler exceptionHandler, io.micronaut.runtime.ApplicationConfiguration applicationConfiguration) Default constructor.- Parameters:
beanContext- The bean contextbinderRegistry- The registry to bind arguments to the methodexceptionHandler- The exception handler to use if the consumer isn't a handlerapplicationConfiguration- The application configuration
-
-
Method Details
-
process
public void process(io.micronaut.inject.BeanDefinition<?> beanDefinition, io.micronaut.inject.ExecutableMethod<?, ?> method) - Specified by:
processin interfaceio.micronaut.context.processor.AnnotationProcessor<PushConsumer,io.micronaut.inject.ExecutableMethod<?, ?>> - Specified by:
processin interfaceio.micronaut.context.processor.ExecutableMethodProcessor<PushConsumer>
-
close
@PreDestroy public void close()- Specified by:
closein interfaceAutoCloseable
-
newSubscription
public io.nats.client.JetStreamSubscription newSubscription(String subject, io.nats.client.PushSubscribeOptions pushSubscribeOptions, String queue) throws io.nats.client.JetStreamApiException, IOException Description copied from interface:PushConsumerRegistryCreate a new push consumer with the default connection.- Specified by:
newSubscriptionin interfacePushConsumerRegistry- Parameters:
subject-StringpushSubscribeOptions-PushSubscribeOptionsqueue-Stringoptional- Returns:
- subscription
JetStreamSubscription - Throws:
io.nats.client.JetStreamApiException- in case of a jetstream errorIOException- in case of a connection error
-
newSubscription
public io.nats.client.JetStreamSubscription newSubscription(String connectionName, String subject, io.nats.client.PushSubscribeOptions pushSubscribeOptions, String queue) throws io.nats.client.JetStreamApiException, IOException Description copied from interface:PushConsumerRegistryCreate a new push consumer from the given connection name.- Specified by:
newSubscriptionin interfacePushConsumerRegistry- Parameters:
connectionName-Stringsubject-StringpushSubscribeOptions-PushSubscribeOptionsqueue-Stringoptional- Returns:
- subscription
JetStreamSubscription - Throws:
io.nats.client.JetStreamApiException- in case of a jetstream errorIOException- in case of a connection error
-