pub struct RedisClient { /* private fields */ }
Implementations§
Source§impl RedisClient
impl RedisClient
Sourcepub async fn new() -> Result<RedisClient>
pub async fn new() -> Result<RedisClient>
Examples found in repository?
examples/consume.rs (line 13)
12async fn main() -> Result<()> {
13 let redis = RedisClient::new().await?;
14 let mut queue = Queue::new(redis, 10);
15
16 let _t2 = tokio::spawn({
17 let mut q = queue.clone();
18
19 async move {
20 let mut i: i32 = 0;
21 loop {
22 let job = Job { id: format!("{i}") };
23 i += 1;
24
25 q.publish(&job).await.unwrap();
26 sleep(Duration::from_millis(5)).await;
27 }
28 }
29 });
30
31 let consumers: Vec<_> = (1..50)
32 .into_iter()
33 .map(|i| {
34 let mut consumer = queue.new_consumer();
35
36 tokio::spawn({
37 async move {
38 loop {
39 let job = consumer.fetch_task().await;
40 println!("consumer_id: {}, consumed job {:?}", i, job)
41 }
42 }
43 })
44 })
45 .collect();
46
47 queue.start().await?;
48 try_join_all(consumers).await?;
49
50 Ok(())
51}
pub async fn rpop(&mut self, count: i32) -> Result<Vec<Job>>
pub async fn lpush(&mut self, job: &Job) -> Result<()>
pub async fn rpoplpush(&mut self) -> Result<Option<Job>>
Trait Implementations§
Source§impl Clone for RedisClient
impl Clone for RedisClient
Source§fn clone(&self) -> RedisClient
fn clone(&self) -> RedisClient
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for RedisClient
impl !RefUnwindSafe for RedisClient
impl Send for RedisClient
impl Sync for RedisClient
impl Unpin for RedisClient
impl !UnwindSafe for RedisClient
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