Method ConsumeAsync
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
serializerINatsDeserialize<T>Serializer to use for the message type.
optsNatsJSConsumeOptsConsume options for the underlying subscription.
cancellationTokenCancellationTokenA CancellationToken used to cancel the call.
Returns
- IAsyncEnumerable<INatsJSMsg<T>>
Async enumerable of messages which can be used in a
await foreachloop.
Type Parameters
TMessage 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.