-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlib.rs
36 lines (27 loc) · 1.05 KB
/
lib.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
use queues::redis::RedisQueue;
use redis;
use grpc::{ControllerServer, MyController};
#[tokio::main]
pub async fn run_server() -> Result<(), Box<dyn std::error::Error>> {
env_logger::builder()
.filter_level(log::LevelFilter::Debug)
.format_target(true)
.init();
let redis_config = configs::read_config::<configs::types::RedisConfigData>();
let controller_config = configs::read_config::<configs::types::ControllerConfigData>();
log::info!("Configuration file is Valid");
let addr = controller_config.controller.get_bind_address().parse()?;
let redis_client = redis::create_redis_client(redis_config.redis)
.await
.expect("Cannot establish redis connection");
let redis_queue = RedisQueue {
client: redis_client.clone(),
};
let controller = MyController::new(redis_client, redis_queue);
log::info!("Running the server on {:?}", addr);
tonic::transport::Server::builder()
.add_service(ControllerServer::new(controller))
.serve(addr)
.await?;
Ok(())
}