Class DefaultBasicConsumer
Useful default/base implementation of IBasicConsumer. Subclass and override HandleBasicDeliver(string, ulong, bool, string, string, IBasicProperties, ReadOnlyMemory<byte>) in application code.
public class DefaultBasicConsumer : IBasicConsumer
- Inheritance
-
DefaultBasicConsumer
- Implements
- Derived
- Inherited Members
Remarks
Note that the "Handle*" methods run in the connection's thread! Consider using EventingBasicConsumer, which exposes events that can be subscribed to consumer messages.
Constructors
DefaultBasicConsumer()
Creates a new instance of an DefaultBasicConsumer.
public DefaultBasicConsumer()
DefaultBasicConsumer(IModel)
Constructor which sets the Model property to the given value.
public DefaultBasicConsumer(IModel model)
Parameters
model
IModelCommon AMQP model.
Properties
ConsumerTags
Retrieve the consumer tags this consumer is registered as; to be used to identify this consumer, for example, when cancelling it with BasicCancel(string). This value is an array because a single consumer instance can be reused to consume on multiple channels.
public string[] ConsumerTags { get; }
Property Value
- string[]
IsRunning
Returns true while the consumer is registered and expecting deliveries from the broker.
public bool IsRunning { get; protected set; }
Property Value
Model
Retrieve the IModel this consumer is associated with, for use in acknowledging received messages, for instance.
public IModel Model { get; set; }
Property Value
ShutdownReason
If our IModel shuts down, this property will contain a description of the reason for the shutdown. Otherwise it will contain null. See ShutdownEventArgs.
public ShutdownEventArgs ShutdownReason { get; protected set; }
Property Value
Methods
HandleBasicCancel(string)
Called when the consumer is cancelled for reasons other than by a basicCancel: e.g. the queue has been deleted (either by this channel or by any other channel). See HandleBasicCancelOk(string) for notification of consumer cancellation due to basicCancel
public virtual void HandleBasicCancel(string consumerTag)
Parameters
consumerTag
stringConsumer tag this consumer is registered.
HandleBasicCancelOk(string)
Called upon successful deregistration of the consumer from the broker.
public virtual void HandleBasicCancelOk(string consumerTag)
Parameters
consumerTag
stringConsumer tag this consumer is registered.
HandleBasicConsumeOk(string)
Called upon successful registration of the consumer with the broker.
public virtual void HandleBasicConsumeOk(string consumerTag)
Parameters
consumerTag
stringConsumer tag this consumer is registered.
HandleBasicDeliver(string, ulong, bool, string, string, IBasicProperties, ReadOnlyMemory<byte>)
Called each time a message is delivered for this consumer.
public virtual void HandleBasicDeliver(string consumerTag, ulong deliveryTag, bool redelivered, string exchange, string routingKey, IBasicProperties properties, ReadOnlyMemory<byte> body)
Parameters
consumerTag
stringdeliveryTag
ulongredelivered
boolexchange
stringroutingKey
stringproperties
IBasicPropertiesbody
ReadOnlyMemory<byte>
Remarks
This is a no-op implementation. It will not acknowledge deliveries via BasicAck(ulong, bool) if consuming in automatic acknowledgement mode. Subclasses must copy or fully use delivery body before returning. Accessing the body at a later point is unsafe as its memory can be already released.
HandleModelShutdown(object, ShutdownEventArgs)
Called when the model (channel) this consumer was registered on terminates.
public virtual void HandleModelShutdown(object model, ShutdownEventArgs reason)
Parameters
model
objectA channel this consumer was registered on.
reason
ShutdownEventArgsShutdown context.
OnCancel(params string[])
Default implementation - overridable in subclasses.
public virtual void OnCancel(params string[] consumerTags)
Parameters
consumerTags
string[]The set of consumer tags that where cancelled
Remarks
This default implementation simply sets the IsRunning property to false, and takes no further action.
Events
ConsumerCancelled
Signalled when the consumer gets cancelled.
public event EventHandler<ConsumerEventArgs> ConsumerCancelled