nack method
Rejects a delivery, optionally requeuing it.
Broadcast deliveries are fire-and-forget in this broker. For broadcast
routes, nack records an ack in the broadcast hub and ignores requeue.
Implementation
@override
/// Rejects a delivery, optionally requeuing it.
///
/// Broadcast deliveries are fire-and-forget in this broker. For broadcast
/// routes, `nack` records an ack in the broadcast hub and ignores `requeue`.
Future<void> nack(Delivery delivery, {bool requeue = true}) async {
if (delivery.route.isBroadcast) {
_broadcastHub.ack(delivery.receipt);
return;
}
final state = _state(delivery.envelope.queue);
final envelope = state.ack(delivery.receipt);
if (envelope != null && requeue) {
state.enqueue(envelope);
}
}