pub struct RedisStorage<T, Conn = ConnectionManager, C = JsonCodec<Vec<u8>>> { /* private fields */ }
Expand description
Represents a Storage that uses Redis for storage.
Implementations§
Source§impl<T: Serialize + DeserializeOwned, Conn> RedisStorage<T, Conn, JsonCodec<Vec<u8>>>
impl<T: Serialize + DeserializeOwned, Conn> RedisStorage<T, Conn, JsonCodec<Vec<u8>>>
Sourcepub fn new_with_config(
conn: Conn,
config: Config,
) -> RedisStorage<T, Conn, JsonCodec<Vec<u8>>>
pub fn new_with_config( conn: Conn, config: Config, ) -> RedisStorage<T, Conn, JsonCodec<Vec<u8>>>
Start a connection with a custom config
Sourcepub fn new_with_codec<K>(conn: Conn, config: Config) -> RedisStorage<T, Conn, K>
pub fn new_with_codec<K>(conn: Conn, config: Config) -> RedisStorage<T, Conn, K>
Start a new connection providing custom config and a codec
Sourcepub fn get_connection(&self) -> &Conn
pub fn get_connection(&self) -> &Conn
Get current connection
Sourcepub fn get_config(&self) -> &Config
pub fn get_config(&self) -> &Config
Get the config used by the storage
Source§impl<T, Conn, C> RedisStorage<T, Conn, C>
impl<T, Conn, C> RedisStorage<T, Conn, C>
Sourcepub fn get_codec(&self) -> &PhantomData<C>
pub fn get_codec(&self) -> &PhantomData<C>
Get the underlying codec details
Source§impl<T, Conn, C> RedisStorage<T, Conn, C>
impl<T, Conn, C> RedisStorage<T, Conn, C>
Sourcepub async fn retry(
&mut self,
worker_id: &WorkerId,
task_id: &TaskId,
) -> Result<i32, RedisError>
pub async fn retry( &mut self, worker_id: &WorkerId, task_id: &TaskId, ) -> Result<i32, RedisError>
Attempt to retry a job
Sourcepub async fn kill(
&mut self,
worker_id: &WorkerId,
task_id: &TaskId,
error: &BoxDynError,
) -> Result<(), RedisError>
pub async fn kill( &mut self, worker_id: &WorkerId, task_id: &TaskId, error: &BoxDynError, ) -> Result<(), RedisError>
Attempt to kill a job
Sourcepub async fn enqueue_scheduled(
&mut self,
count: usize,
) -> Result<usize, RedisError>
pub async fn enqueue_scheduled( &mut self, count: usize, ) -> Result<usize, RedisError>
Required to add scheduled jobs to the active set
Sourcepub async fn reenqueue_active(
&mut self,
job_ids: Vec<&TaskId>,
) -> Result<(), RedisError>
pub async fn reenqueue_active( &mut self, job_ids: Vec<&TaskId>, ) -> Result<(), RedisError>
Re-enqueue some jobs that might be abandoned.
Sourcepub async fn reenqueue_orphaned(
&mut self,
count: i32,
dead_since: DateTime<Utc>,
) -> Result<usize, RedisError>
pub async fn reenqueue_orphaned( &mut self, count: i32, dead_since: DateTime<Utc>, ) -> Result<usize, RedisError>
Re-enqueue some jobs that might be orphaned after a number of seconds
Trait Implementations§
Source§impl<T, Conn, C, Res> Ack<T, Res, C> for RedisStorage<T, Conn, C>
impl<T, Conn, C, Res> Ack<T, Res, C> for RedisStorage<T, Conn, C>
Source§type Context = RedisContext
type Context = RedisContext
The data to fetch from context to allow acknowledgement
Source§type AckError = RedisError
type AckError = RedisError
The error returned by the ack
Source§impl<T, Conn, C> Backend<Request<T, RedisContext>> for RedisStorage<T, Conn, C>
impl<T, Conn, C> Backend<Request<T, RedisContext>> for RedisStorage<T, Conn, C>
Source§impl<T> BackendExpose<T> for RedisStorage<T>
impl<T> BackendExpose<T> for RedisStorage<T>
Source§type Request = Request<T, RedisContext>
type Request = Request<T, RedisContext>
The request type being handled by the backend
Source§type Error = RedisError
type Error = RedisError
The error returned during reading jobs and stats
Source§async fn stats(&self) -> Result<Stat, RedisError>
async fn stats(&self) -> Result<Stat, RedisError>
Returns the counts of jobs in different states
Source§async fn list_jobs(
&self,
status: &State,
page: i32,
) -> Result<Vec<Self::Request>, RedisError>
async fn list_jobs( &self, status: &State, page: i32, ) -> Result<Vec<Self::Request>, RedisError>
Fetch jobs persisted in a backend
Source§async fn list_workers(&self) -> Result<Vec<Worker<WorkerState>>, RedisError>
async fn list_workers(&self) -> Result<Vec<Worker<WorkerState>>, RedisError>
List all Workers that are working on a backend
Source§impl<T, Conn: Clone, C> Clone for RedisStorage<T, Conn, C>
impl<T, Conn: Clone, C> Clone for RedisStorage<T, Conn, C>
Source§impl<T, Conn, C> Debug for RedisStorage<T, Conn, C>
impl<T, Conn, C> Debug for RedisStorage<T, Conn, C>
Source§impl<T, Conn, C> Storage for RedisStorage<T, Conn, C>
impl<T, Conn, C> Storage for RedisStorage<T, Conn, C>
Source§type Error = RedisError
type Error = RedisError
The error produced by the storage
Source§type Context = RedisContext
type Context = RedisContext
This is the type that storages store as the metadata related to a job
Source§async fn push_request(
&mut self,
req: Request<T, RedisContext>,
) -> Result<Parts<Self::Context>, RedisError>
async fn push_request( &mut self, req: Request<T, RedisContext>, ) -> Result<Parts<Self::Context>, RedisError>
Pushes a constructed request to a storage
Source§async fn push_raw_request(
&mut self,
req: Request<Self::Compact, Self::Context>,
) -> Result<Parts<Self::Context>, Self::Error>
async fn push_raw_request( &mut self, req: Request<Self::Compact, Self::Context>, ) -> Result<Parts<Self::Context>, Self::Error>
Pushes a constructed request to a storage
Source§async fn schedule_request(
&mut self,
req: Request<Self::Job, RedisContext>,
on: i64,
) -> Result<Parts<Self::Context>, RedisError>
async fn schedule_request( &mut self, req: Request<Self::Job, RedisContext>, on: i64, ) -> Result<Parts<Self::Context>, RedisError>
Push a request into the scheduled set
Source§async fn len(&mut self) -> Result<i64, RedisError>
async fn len(&mut self) -> Result<i64, RedisError>
Return the number of pending jobs from the queue
Source§async fn fetch_by_id(
&mut self,
job_id: &TaskId,
) -> Result<Option<Request<Self::Job, RedisContext>>, RedisError>
async fn fetch_by_id( &mut self, job_id: &TaskId, ) -> Result<Option<Request<Self::Job, RedisContext>>, RedisError>
Fetch a job given an id
Source§async fn update(
&mut self,
job: Request<T, RedisContext>,
) -> Result<(), RedisError>
async fn update( &mut self, job: Request<T, RedisContext>, ) -> Result<(), RedisError>
Update a job details
Source§async fn reschedule(
&mut self,
job: Request<T, RedisContext>,
wait: Duration,
) -> Result<(), RedisError>
async fn reschedule( &mut self, job: Request<T, RedisContext>, wait: Duration, ) -> Result<(), RedisError>
Reschedule a job
Source§async fn is_empty(&mut self) -> Result<bool, RedisError>
async fn is_empty(&mut self) -> Result<bool, RedisError>
Returns true if there is no jobs in the storage
Source§async fn vacuum(&mut self) -> Result<usize, RedisError>
async fn vacuum(&mut self) -> Result<usize, RedisError>
Vacuum the storage, removes done and killed jobs
Auto Trait Implementations§
impl<T, Conn, C> Freeze for RedisStorage<T, Conn, C>where
Conn: Freeze,
impl<T, Conn, C> RefUnwindSafe for RedisStorage<T, Conn, C>
impl<T, Conn, C> Send for RedisStorage<T, Conn, C>
impl<T, Conn, C> Sync for RedisStorage<T, Conn, C>
impl<T, Conn, C> Unpin for RedisStorage<T, Conn, C>
impl<T, Conn, C> UnwindSafe for RedisStorage<T, Conn, C>
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