nack method

  1. @override
Future<void> nack(
  1. Delivery delivery, {
  2. bool requeue = true,
})
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.

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);
  }
}