Virtual channel Quality of Service (kombu.transport.virtual.base.QoS).
Manages prefetch_count limits and unacknowledged message tracking/restoration.
Summary
Functions
Marks delivery_tag as acknowledged (dirty).
Returns the number of currently active (delivered minus dirty) messages.
Appends a message with delivery_tag to the unacknowledged state (flushing dirty tags first).
Returns true if the channel can consume more messages given prefetch_count.
Returns the estimated maximum number of messages that can be consumed at once,
or nil when prefetch_count == 0.
Clears all delivered and dirty tags from %QoS{}.
Flushes dirty (acked/rejected) delivery tags from delivered.
Gets a delivered message by delivery_tag. Raises KeyError if not found.
Creates a new %QoS{} state.
Marks delivery_tag as rejected, optionally invoking restore_fun.(message) when requeue: true.
Restores all unacknowledged messages in LIFO order using restore_fun.(message).
Returns {errors, updated_qos}.
Restores all unacknowledged messages at most once on channel close/shutdown.
Types
@type t() :: %Kombu.Transport.Virtual.QoS{ delivered_map: %{required(delivery_tag()) => term()}, delivered_order: [delivery_tag()], dirty: MapSet.t(delivery_tag()), prefetch_count: non_neg_integer(), restore_at_shutdown: boolean(), restored: boolean() }
Functions
@spec ack(t(), delivery_tag()) :: t()
Marks delivery_tag as acknowledged (dirty).
@spec active_count(t()) :: non_neg_integer()
Returns the number of currently active (delivered minus dirty) messages.
@spec append(t(), term(), delivery_tag()) :: t()
Appends a message with delivery_tag to the unacknowledged state (flushing dirty tags first).
Returns true if the channel can consume more messages given prefetch_count.
@spec can_consume_max_estimate(t()) :: non_neg_integer() | nil
Returns the estimated maximum number of messages that can be consumed at once,
or nil when prefetch_count == 0.
Clears all delivered and dirty tags from %QoS{}.
Flushes dirty (acked/rejected) delivery tags from delivered.
@spec get(t(), delivery_tag()) :: term()
Gets a delivered message by delivery_tag. Raises KeyError if not found.
@spec new(non_neg_integer(), keyword()) :: t()
Creates a new %QoS{} state.
@spec reject(t(), delivery_tag(), keyword()) :: t()
Marks delivery_tag as rejected, optionally invoking restore_fun.(message) when requeue: true.
Restores all unacknowledged messages in LIFO order using restore_fun.(message).
Returns {errors, updated_qos}.
Restores all unacknowledged messages at most once on channel close/shutdown.