Struct redis_queue::manager::Manager
source · pub struct Manager { /* private fields */ }
Expand description
Task Queue manager.
Implementations§
source§impl Manager
impl Manager
sourcepub async fn new(
queue: Queue,
config: ManagerConfig
) -> Result<Self, ConfigError>
pub async fn new( queue: Queue, config: ManagerConfig ) -> Result<Self, ConfigError>
Creates new manager from configuration.
sourcepub fn config(&self) -> &ManagerConfig
pub fn config(&self) -> &ManagerConfig
Access manager’s configuration
sourcepub fn max_pending_retry_count(&self) -> u64
pub fn max_pending_retry_count(&self) -> u64
Returns number of re-tries current configuration should allow.
Generally it is just min(self.config.max_pending_time / self.config.poll_time, 1)
sourcepub fn pending_tasks(
&self,
count: usize,
last_id: Option<StreamId>
) -> PendingIter<'_>
pub fn pending_tasks( &self, count: usize, last_id: Option<StreamId> ) -> PendingIter<'_>
Creates iterator of pending entries in queue.
last_id
can be used to specify from where to continue for iteration purpose.
sourcepub fn expired_pending_tasks(
&self,
count: usize,
last_id: Option<StreamId>
) -> PendingIter<'_>
pub fn expired_pending_tasks( &self, count: usize, last_id: Option<StreamId> ) -> PendingIter<'_>
Creates iterator of expired entries in queue
last_id
can be used to specify from where to continue for iteration purpose.
sourcepub fn fetch_new_tasks(&self, count: usize) -> FetchIter<'_>
pub fn fetch_new_tasks(&self, count: usize) -> FetchIter<'_>
Creates iterator over new tasks within queue
sourcepub async fn get_pending_by_id<T: FromRedisValue>(
&self,
id: StreamId
) -> Result<Option<Entry<T>>, RedisError>
pub async fn get_pending_by_id<T: FromRedisValue>( &self, id: StreamId ) -> Result<Option<Entry<T>>, RedisError>
Retrieves task entry by id
Implementation
Due to Redis not providing any method to get message by id, we have to emulate it by doing
query for message after id - 1
to fetch message by id
.
If message is no longer exist, we return None
.
Note that when reading pending message data, there is no timeout possible
If there is no message, it will return None
sourcepub async fn consume_tasks(
&self,
tasks: &[StreamId]
) -> Result<usize, RedisError>
pub async fn consume_tasks( &self, tasks: &[StreamId] ) -> Result<usize, RedisError>
Consumes tasks by specified IDs.
If error is returned, tasks
modified with cleaned IDs removed.