pub struct PostgresBroker { /* private fields */ }Expand description
PostgreSQL-backed broker implementation.
Persists the queue to a PostgreSQL database, suitable for multi-node deployments.
Implementations§
Trait Implementations§
Source§impl Broker for PostgresBroker
impl Broker for PostgresBroker
Source§fn route_invocation<'life0, 'life1, 'async_trait>(
&'life0 self,
invocation_id: &'life1 InvocationId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn route_invocation<'life0, 'life1, 'async_trait>(
&'life0 self,
invocation_id: &'life1 InvocationId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Queue an invocation for processing by a runner. Read more
Source§fn retrieve_invocation<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: Option<&'life1 TaskId>,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<InvocationId>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn retrieve_invocation<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: Option<&'life1 TaskId>,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<InvocationId>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retrieve the next invocation to process.
Returns
None if the queue is empty.Source§fn count_invocations<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: Option<&'life1 TaskId>,
) -> Pin<Box<dyn Future<Output = RustvelloResult<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn count_invocations<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: Option<&'life1 TaskId>,
) -> Pin<Box<dyn Future<Output = RustvelloResult<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Count queued invocations, optionally filtered by task.
Source§fn purge<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: Option<&'life1 TaskId>,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn purge<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: Option<&'life1 TaskId>,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Remove all queued invocations.
Source§fn retrieve_invocation_for_language<'life0, 'life1, 'async_trait>(
&'life0 self,
language: &'life1 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<InvocationId>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn retrieve_invocation_for_language<'life0, 'life1, 'async_trait>(
&'life0 self,
language: &'life1 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<InvocationId>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retrieve the next invocation for a specific language worker. Read more
Source§fn route_invocation_for_task<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
invocation_id: &'life1 InvocationId,
_task_id: &'life2 TaskId,
) -> Pin<Box<dyn Future<Output = Result<(), RustvelloError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn route_invocation_for_task<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
invocation_id: &'life1 InvocationId,
_task_id: &'life2 TaskId,
) -> Pin<Box<dyn Future<Output = Result<(), RustvelloError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Queue an invocation for processing, with the task ID for per-task routing. Read more
Source§fn route_invocations<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [InvocationId],
) -> Pin<Box<dyn Future<Output = Result<(), RustvelloError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn route_invocations<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [InvocationId],
) -> Pin<Box<dyn Future<Output = Result<(), RustvelloError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Queue multiple invocations at once (batch optimization).
Source§fn retrieve_invocations<'life0, 'life1, 'async_trait>(
&'life0 self,
max: usize,
task_id: Option<&'life1 TaskId>,
) -> Pin<Box<dyn Future<Output = Result<Vec<InvocationId>, RustvelloError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn retrieve_invocations<'life0, 'life1, 'async_trait>(
&'life0 self,
max: usize,
task_id: Option<&'life1 TaskId>,
) -> Pin<Box<dyn Future<Output = Result<Vec<InvocationId>, RustvelloError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Retrieve up to
max invocations at once (batch optimization). Read moreSource§fn wait_for_work<'life0, 'life1, 'async_trait>(
&'life0 self,
cancel: &'life1 CancellationToken,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn wait_for_work<'life0, 'life1, 'async_trait>(
&'life0 self,
cancel: &'life1 CancellationToken,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Block until work is available or cancellation is requested. Read more
Auto Trait Implementations§
impl Freeze for PostgresBroker
impl !RefUnwindSafe for PostgresBroker
impl Send for PostgresBroker
impl Sync for PostgresBroker
impl Unpin for PostgresBroker
impl UnsafeUnpin for PostgresBroker
impl !UnwindSafe for PostgresBroker
Blanket Implementations§
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