pub struct Disque { /* private fields */ }Implementations§
Source§impl Disque
impl Disque
Sourcepub fn open<T: IntoConnectionInfo>(params: T) -> RedisResult<Disque>
pub fn open<T: IntoConnectionInfo>(params: T) -> RedisResult<Disque>
Opens a new connection to a Disque server.
§Examples
let disque = Disque::open("redis://127.0.0.1:7711/").unwrap();Sourcepub fn hello(
&self,
) -> RedisResult<(u8, String, Vec<(String, String, u16, u32)>)>
pub fn hello( &self, ) -> RedisResult<(u8, String, Vec<(String, String, u16, u32)>)>
The hello command returns information about the disque cluster.
§Examples
let disque = Disque::open("redis://127.0.0.1:7711/").unwrap();
let (_, nodeid, _) = disque.hello().unwrap();
println!("Connected to node {}", nodeid);Sourcepub fn addjob(
&self,
queue_name: &[u8],
job: &[u8],
timeout: Duration,
replicate: Option<usize>,
delay: Option<Duration>,
retry: Option<Duration>,
ttl: Option<Duration>,
maxlen: Option<usize>,
async: bool,
) -> RedisResult<String>
pub fn addjob( &self, queue_name: &[u8], job: &[u8], timeout: Duration, replicate: Option<usize>, delay: Option<Duration>, retry: Option<Duration>, ttl: Option<Duration>, maxlen: Option<usize>, async: bool, ) -> RedisResult<String>
Adds a job to a queue.
§Examples
let disque = Disque::open("redis://127.0.0.1:7711/").unwrap();
let jobid = disque.addjob(b"my queue", b"my job",
Duration::from_secs(10), None, None, None, None, None, false
).unwrap();
println!("My job id is {}", jobid);Sourcepub fn getjob_count(
&self,
nohang: bool,
timeout: Option<Duration>,
count: usize,
queues: &[&[u8]],
) -> RedisResult<Vec<(Vec<u8>, String, Vec<u8>)>>
pub fn getjob_count( &self, nohang: bool, timeout: Option<Duration>, count: usize, queues: &[&[u8]], ) -> RedisResult<Vec<(Vec<u8>, String, Vec<u8>)>>
Gets up to count jobs from certain queues.
§Examples
let disque = Disque::open("redis://127.0.0.1:7711/").unwrap();
let queue = b"my getjob_count queue";
disque.addjob(queue, b"my job 1", Duration::from_secs(10),
None, None, None, None, None, false
).unwrap();
disque.addjob(queue, b"my job 2", Duration::from_secs(10),
None, None, None, None, None, false
).unwrap();
let jobs = disque.getjob_count(true, None, 10, &[queue]).unwrap();
assert_eq!(jobs.len(), 2);
assert_eq!(jobs[0].2, b"my job 1");
assert_eq!(jobs[1].2, b"my job 2");pub fn getjob_count_withcounters( &self, nohang: bool, timeout: Option<Duration>, count: usize, queues: &[&[u8]], ) -> RedisResult<Vec<(Vec<u8>, String, Vec<u8>, u32, u32)>>
Sourcepub fn getjob(
&self,
nohang: bool,
timeout: Option<Duration>,
queues: &[&[u8]],
) -> RedisResult<Option<(Vec<u8>, String, Vec<u8>)>>
pub fn getjob( &self, nohang: bool, timeout: Option<Duration>, queues: &[&[u8]], ) -> RedisResult<Option<(Vec<u8>, String, Vec<u8>)>>
Gets a single job from any of the specified queues.
Sourcepub fn getjob_withcounters(
&self,
nohang: bool,
timeout: Option<Duration>,
queues: &[&[u8]],
) -> RedisResult<Option<(Vec<u8>, String, Vec<u8>, u32, u32)>>
pub fn getjob_withcounters( &self, nohang: bool, timeout: Option<Duration>, queues: &[&[u8]], ) -> RedisResult<Option<(Vec<u8>, String, Vec<u8>, u32, u32)>>
Gets a single job from any of the specified queues with its nack and
additional deliveries count.
Sourcepub fn ackjobs(&self, jobids: &[&[u8]]) -> RedisResult<usize>
pub fn ackjobs(&self, jobids: &[&[u8]]) -> RedisResult<usize>
Acknowledge jobs.
Sourcepub fn ackjob(&self, jobid: &[u8]) -> RedisResult<bool>
pub fn ackjob(&self, jobid: &[u8]) -> RedisResult<bool>
Acknowledge a job.
Sourcepub fn fastackjobs(&self, jobids: &[&[u8]]) -> RedisResult<usize>
pub fn fastackjobs(&self, jobids: &[&[u8]]) -> RedisResult<usize>
Fast acknowledge jobs.
Sourcepub fn fastackjob(&self, jobid: &[u8]) -> RedisResult<bool>
pub fn fastackjob(&self, jobid: &[u8]) -> RedisResult<bool>
Fast acknowledge a job.
Sourcepub fn working(&self, jobid: &[u8]) -> RedisResult<Duration>
pub fn working(&self, jobid: &[u8]) -> RedisResult<Duration>
Tell Disque that a job is still processed.
Sourcepub fn nackjobs(&self, jobids: &[&[u8]]) -> RedisResult<usize>
pub fn nackjobs(&self, jobids: &[&[u8]]) -> RedisResult<usize>
Tells Disque to put back the jobs in the queue ASAP. Should be used when the worker was not able to process a message and wants the message to be put back into the queue in order to be processed again.
Sourcepub fn nackjob(&self, jobid: &[u8]) -> RedisResult<bool>
pub fn nackjob(&self, jobid: &[u8]) -> RedisResult<bool>
Tells Disque to put back a job in the queue ASAP.
Sourcepub fn info(&self) -> RedisResult<InfoDict>
pub fn info(&self) -> RedisResult<InfoDict>
Information about the server
Sourcepub fn qlen(&self, queue_name: &[u8]) -> RedisResult<usize>
pub fn qlen(&self, queue_name: &[u8]) -> RedisResult<usize>
Size of the queue
Sourcepub fn qpeek(
&self,
queue_name: &[u8],
count: i64,
) -> RedisResult<Vec<Vec<Vec<u8>>>>
pub fn qpeek( &self, queue_name: &[u8], count: i64, ) -> RedisResult<Vec<Vec<Vec<u8>>>>
Gets jobs from queue_name up to the absolute number of count.
If count is negative, it will be from newest to oldest.
Sourcepub fn enqueue(&self, jobids: &[&[u8]]) -> RedisResult<usize>
pub fn enqueue(&self, jobids: &[&[u8]]) -> RedisResult<usize>
Add jobs to queues
Sourcepub fn dequeue(&self, jobids: &[&[u8]]) -> RedisResult<usize>
pub fn dequeue(&self, jobids: &[&[u8]]) -> RedisResult<usize>
Remove jobs from queue
Sourcepub fn deljobs(&self, jobids: &[&[u8]]) -> RedisResult<usize>
pub fn deljobs(&self, jobids: &[&[u8]]) -> RedisResult<usize>
Completely delete jobs from a single node.
Sourcepub fn deljob(&self, jobid: &[u8]) -> RedisResult<bool>
pub fn deljob(&self, jobid: &[u8]) -> RedisResult<bool>
Completely delete a job from a single node.
Sourcepub fn show(&self, jobid: &[u8]) -> RedisResult<Option<HashMap<String, Value>>>
pub fn show(&self, jobid: &[u8]) -> RedisResult<Option<HashMap<String, Value>>>
Returns full information about a job, like its current state and data.
Sourcepub fn qscan(
&self,
cursor: u64,
count: u64,
busyloop: bool,
minlen: Option<u64>,
maxlen: Option<u64>,
importrate: Option<u64>,
) -> RedisResult<Iter<'_, Vec<u8>>>
pub fn qscan( &self, cursor: u64, count: u64, busyloop: bool, minlen: Option<u64>, maxlen: Option<u64>, importrate: Option<u64>, ) -> RedisResult<Iter<'_, Vec<u8>>>
Iterator to run all queues that fulfil a criteria.
The iterator will batch into segments of approximate count size.
Sourcepub fn jscan_id(
&self,
cursor: u64,
count: u64,
busyloop: bool,
queue: Option<&[u8]>,
states: &[&str],
) -> RedisResult<Iter<'_, String>>
pub fn jscan_id( &self, cursor: u64, count: u64, busyloop: bool, queue: Option<&[u8]>, states: &[&str], ) -> RedisResult<Iter<'_, String>>
Iterator for all job ids that fulfil a criteria.
The iterator will batch into segments of approximate count size.
Sourcepub fn jscan_all(
&self,
cursor: u64,
count: u64,
busyloop: bool,
queue: Option<&[u8]>,
states: &[&str],
) -> RedisResult<Iter<'_, HashMap<String, Value>>>
pub fn jscan_all( &self, cursor: u64, count: u64, busyloop: bool, queue: Option<&[u8]>, states: &[&str], ) -> RedisResult<Iter<'_, HashMap<String, Value>>>
Iterator for all jobs that fulfil a criteria.
The iterator will batch into segments of approximate count size.