pub enum QueuePolicy {
DropOldest,
Backpressure,
}Expand description
Queue overflow policy for an input.
Variants§
DropOldest
Drop the oldest queued message when the queue is full (default).
Backpressure
Buffer up to 10x queue_size without dropping. Drops with ERROR log at hard cap.
Implementations§
Source§impl QueuePolicy
impl QueuePolicy
Sourcepub fn effective_cap(&self, queue_size: usize) -> usize
pub fn effective_cap(&self, queue_size: usize) -> usize
Returns the effective capacity for a given configured queue size.
DropOldest: returnsqueue_size, but never less than 1.Backpressure: returns10 * queue_size(min 100) as a hard safety cap.
A DropOldest cap of 0 would drop 100% of the input’s events — the
runtime operator channel sets the just-queued event to None on every
add_event, so the operator never receives a single message and the
dataflow silently hangs. Clamp queue_size: 0 to 1 (latest-only)
instead of turning the input into a dead port.
use dora_message::config::QueuePolicy;
// DropOldest keeps `queue_size`, but never a dead 0-capacity port.
assert_eq!(QueuePolicy::DropOldest.effective_cap(5), 5);
assert_eq!(QueuePolicy::DropOldest.effective_cap(0), 1);
// Backpressure buffers 10x the configured size, with a floor of 100.
assert_eq!(QueuePolicy::Backpressure.effective_cap(5), 100);
assert_eq!(QueuePolicy::Backpressure.effective_cap(50), 500);Trait Implementations§
Source§impl Clone for QueuePolicy
impl Clone for QueuePolicy
impl Copy for QueuePolicy
Source§impl Debug for QueuePolicy
impl Debug for QueuePolicy
Source§impl Default for QueuePolicy
impl Default for QueuePolicy
Source§impl<'de> Deserialize<'de> for QueuePolicy
impl<'de> Deserialize<'de> for QueuePolicy
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for QueuePolicy
Source§impl JsonSchema for QueuePolicy
impl JsonSchema for QueuePolicy
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Returns a string that uniquely identifies the schema produced by this type. Read more
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
Whether JSON Schemas generated for this type should be included directly in parent schemas,
rather than being re-used where possible using the
$ref keyword. Read moreSource§impl PartialEq for QueuePolicy
impl PartialEq for QueuePolicy
Source§impl Serialize for QueuePolicy
impl Serialize for QueuePolicy
impl StructuralPartialEq for QueuePolicy
Auto Trait Implementations§
impl Freeze for QueuePolicy
impl RefUnwindSafe for QueuePolicy
impl Send for QueuePolicy
impl Sync for QueuePolicy
impl Unpin for QueuePolicy
impl UnsafeUnpin for QueuePolicy
impl UnwindSafe for QueuePolicy
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more