Struct disque::Disque
[−]
[src]
pub struct Disque { // some fields omitted }
Methods
impl Disque
[src]
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();
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);
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);
fn getjob_count(&self, nohang: bool, timeout: Option<Duration>, count: usize, withcounters: bool, queues: &[&[u8]]) -> RedisResult<Vec<Vec<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, false, &[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");
fn getjob(&self, nohang: bool, timeout: Option<Duration>, withcounters: bool, queues: &[&[u8]]) -> RedisResult<Option<Vec<Vec<u8>>>>
Gets a single job from any of the specified queues
.
fn ackjob(&self, jobids: &[&[u8]]) -> RedisResult<bool>
Acknowledge jobs.
fn fastack(&self, jobids: &[&[u8]]) -> RedisResult<usize>
Fast acknowledge jobs.
fn working(&self, jobid: &[u8]) -> RedisResult<Duration>
Tell Disque that a job is still processed.
fn nack(&self, jobids: &[&[u8]]) -> RedisResult<usize>
Tells Disque to put back the job 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.
fn info(&self) -> RedisResult<InfoDict>
Information about the server
fn qlen(&self, queue_name: &[u8]) -> RedisResult<usize>
Size of the queue
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.
fn enqueue(&self, jobids: &[&[u8]]) -> RedisResult<usize>
Queue jobs
fn dequeue(&self, jobids: &[&[u8]]) -> RedisResult<usize>
Remove jobs from queue
fn deljob(&self, jobids: &[&[u8]]) -> RedisResult<usize>
Completely delete a job from a single node.
fn show(&self, jobid: &[u8]) -> RedisResult<HashMap<String, Value>>
Returns full information about a job, like its current state and data.
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.
fn jscan_id(&self, cursor: u64, count: u64, blocking: bool, queue: Option<&[u8]>, states: &[&str]) -> RedisResult<Iter<String>>
Iterator to run all jobs that fulfil a criteria.
The iterator will batch into segments of approximate count
size.