Table of Contents

Method ConsumeAsync

Namespace
NATS.Client.JetStream
Assembly
NATS.Client.JetStream.dll

ConsumeAsync<T>(INatsDeserialize<T>?, NatsJSConsumeOpts?, CancellationToken)

Starts an enumerator consuming messages from this push consumer.

public IAsyncEnumerable<INatsJSMsg<T>> ConsumeAsync<T>(INatsDeserialize<T>? serializer = null, NatsJSConsumeOpts? opts = null, CancellationToken cancellationToken = default)

Parameters

serializer INatsDeserialize<T>

Serializer to use for the message type.

opts NatsJSConsumeOpts

Consume options for the underlying subscription.

cancellationToken CancellationToken

A CancellationToken used to cancel the call.

Returns

IAsyncEnumerable<INatsJSMsg<T>>

Async enumerable of messages which can be used in a await foreach loop.

Type Parameters

T

Message type to deserialize.

Remarks

Each call creates a new subscription on the consumer's deliver subject. For non-queue push consumers (no DeliverGroup) this means every message is delivered to every active enumeration. Use a single await foreach loop per consumer instance, or create separate consumer instances via GetPushConsumerAsync(string, string, CancellationToken) to consume concurrently.

Exceptions

NatsJSException

This consumer object isn't valid anymore because it was deleted earlier or the consumer has no deliver subject.