namespaced_demo/
namespaced_demo.rs1use async_trait::async_trait;
2use bb8::Pool;
3use sidekiq::{Processor, RedisConnectionManager, Result, Worker};
4
5#[derive(Clone)]
6struct HelloWorker;
7
8#[async_trait]
9impl Worker<()> for HelloWorker {
10 async fn perform(&self, _args: ()) -> Result<()> {
11 println!("Hello, world!");
12
13 Ok(())
14 }
15}
16
17#[tokio::main]
18async fn main() -> Result<()> {
19 tracing_subscriber::fmt::init();
20
21 let manager = RedisConnectionManager::new("redis://127.0.0.1/")?;
23 let redis = Pool::builder()
24 .max_size(100)
25 .connection_customizer(sidekiq::with_custom_namespace("yolo_app".to_string()))
26 .build(manager)
27 .await?;
28
29 tokio::spawn({
30 let redis = redis.clone();
31
32 async move {
33 loop {
34 HelloWorker::perform_async(&redis, ()).await.unwrap();
35
36 tokio::time::sleep(std::time::Duration::from_secs(1)).await;
37 }
38 }
39 });
40
41 let mut p = Processor::new(redis.clone(), vec!["default".to_string()]);
43
44 p.register(HelloWorker);
46
47 p.run().await;
49 Ok(())
50}