Skip to main content

Queue

Struct Queue 

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

A task queue.

§Use of key-value store.

The queue uses a namespace handed in during creation. The first element of the scope is “pending” for pending tasks and “running” for running tasks. The second element is the Unix timestamp for when the task is scheduled in milliseconds followed by a dash and the name.

Implementations§

Source§

impl Queue

Source

pub fn create(storage_uri: &Url, namespace: &Ident) -> Result<Self, Error>

Creates a new queue.

Source

pub fn pending_tasks_remaining(&self) -> Result<usize, Error>

Returns the number of pending tasks remaining.

Source

pub fn running_tasks_remaining(&self) -> Result<usize, Error>

Returns the number of running tasks.

Source

pub fn running_tasks_keys(&self) -> Result<Vec<Box<Ident>>, Error>

Returns the keys of the currently running tasks

Source

pub fn schedule_task( &self, name: &Ident, value: &Value, timestamp_millis: Option<u128>, mode: ScheduleMode, ) -> Result<(), Error>

Schedule a new task.

The task will be scheduled to be run at the given Unix timestamp or, if the timestamp is None, immediately.

If a task with the same name already exists, then action depends on the mode.

Source

pub fn pending_task_scheduled( &self, name: &Ident, ) -> Result<Option<u128>, Error>

Returns the scheduled timestamp in ms for the named task, if any.

Source

pub fn finish_running_task(&self, storage_key: &Ident) -> Result<(), Error>

Marks a running task as finished.

Fails if the task is not running.

Source

pub fn reschedule_running_task( &self, storage_key: &Ident, timestamp_millis: Option<u128>, ) -> Result<(), Error>

Reschedules a running task as pending.

Fails if the task is not running.

Source

pub fn claim_scheduled_pending_task( &self, ) -> Result<Option<(Box<Ident>, Value)>, Error>

Claims the next scheduled pending task, if any.

Source

pub fn reschedule_long_running_tasks( &self, reschedule_after: Option<Duration>, ) -> Result<(), Error>

Reschedules running tasks that have timed out.

Trait Implementations§

Source§

impl Debug for Queue

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Queue

§

impl RefUnwindSafe for Queue

§

impl Send for Queue

§

impl Sync for Queue

§

impl Unpin for Queue

§

impl UnsafeUnpin for Queue

§

impl UnwindSafe for Queue

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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

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
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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