Router

Struct Router 

Source
pub struct Router { /* private fields */ }
Expand description

Task router for directing tasks to appropriate queues

Implementations§

Source§

impl Router

Source

pub fn new() -> Self

Create a new empty router

Source

pub fn with_default_queue(queue: impl Into<String>) -> Self

Create a router with a default queue

Source

pub fn add_rule(&mut self, rule: RouteRule)

Add a routing rule

Rules are sorted by priority (higher priority rules are evaluated first)

Source

pub fn add_direct_route( &mut self, task_name: impl Into<String>, result: RouteResult, )

Add a direct route for a specific task

Direct routes take precedence over pattern-based rules

Source

pub fn set_default_queue(&mut self, queue: impl Into<String>)

Set the default queue for unmatched tasks

Source

pub fn route(&self, task_name: &str) -> Option<String>

Route a task to a queue

Returns None if no matching rule and no default queue

Source

pub fn route_full(&self, task_name: &str) -> Option<RouteResult>

Route a task and get full routing information

Returns None if no matching rule and no default queue

Source

pub fn route_with_args( &self, task_name: &str, args: &[Value], kwargs: &Map<String, Value>, ) -> Option<String>

Route a task with arguments to a queue

This method considers both task name patterns and argument conditions. Returns None if no matching rule and no default queue.

Source

pub fn route_full_with_args( &self, task_name: &str, args: &[Value], kwargs: &Map<String, Value>, ) -> Option<RouteResult>

Route a task with arguments and get full routing information

This method considers both task name patterns and argument conditions. Returns None if no matching rule and no default queue.

Source

pub fn has_route(&self, task_name: &str) -> bool

Check if a task has any matching route

Source

pub fn rules(&self) -> &[RouteRule]

Get all registered rules

Source

pub fn remove_rules_by_queue(&mut self, queue: &str)

Remove all rules matching a pattern

Source

pub fn clear(&mut self)

Clear all rules

Trait Implementations§

Source§

impl Debug for Router

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Router

Source§

fn default() -> Router

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl Freeze for Router

§

impl RefUnwindSafe for Router

§

impl Send for Router

§

impl Sync for Router

§

impl Unpin for Router

§

impl UnwindSafe for Router

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more