Deamon + minor update

This commit is contained in:
2024-09-13 13:59:54 +02:00
parent 0010f00502
commit fb41e1b02b
6 changed files with 1975 additions and 27 deletions

View File

@@ -218,34 +218,34 @@ async fn main() {
let daemonize = Daemonize::new()
.pid_file("/tmp/test.pid") // Every method except `new` and `start`
.chown_pid_file(true) // is optional, see `Daemonize` documentation
.working_directory("/tmp") // for default behaviour.
.working_directory("/home/aindustries/vote-rllhc/") // for default behaviour.
.stdout(stdout) // Redirect stdout to `/tmp/daemon.out`.
.stderr(stderr); // Redirect stderr to `/tmp/daemon.err`.
match daemonize.start() {
Ok(_) => {
let _ = dotenv();
let db_adrr = find_in_vars("DATABASE_ADRR");
let db_pool = Arc::new(Mutex::new(SqlitePool::connect(&db_adrr).await.unwrap()));
let bind_adrr: SocketAddr = SocketAddr::from_str(find_in_vars("BIND_ADRR").as_str()).expect("Could not parse bind address");
let listener = TcpListener::bind(bind_adrr).await.expect("Could not bind to address.");
loop {
let (tcp, _) = listener.accept().await.expect("Could not accept stream");
let io = TokioIo::new(tcp);
let db = db_pool.clone();
let service = service_fn(move |req| {
service(req, db.clone())
});
tokio::task::spawn(async move {
if let Err(err) = http1::Builder::new()
.timer(TokioTimer::new())
.serve_connection(io, service).await
{
println!("Failed to serve connection: {:?}", err);
}
});
}},
let _ = dotenv();
let db_adrr = find_in_vars("DATABASE_ADRR");
let db_pool = Arc::new(Mutex::new(SqlitePool::connect(&db_adrr).await.unwrap()));
let bind_adrr: SocketAddr = SocketAddr::from_str(find_in_vars("BIND_ADRR").as_str()).expect("Could not parse bind address");
let listener = TcpListener::bind(bind_adrr).await.expect("Could not bind to address.");
loop {
let (tcp, _) = listener.accept().await.expect("Could not accept stream");
let io = TokioIo::new(tcp);
let db = db_pool.clone();
let service = service_fn(move |req| {
service(req, db.clone())
});
tokio::task::spawn(async move {
if let Err(err) = http1::Builder::new()
.timer(TokioTimer::new())
.serve_connection(io, service).await
{
println!("Failed to serve connection: {:?}", err);
}
});
}
},
Err(e) => eprintln!("Error, {}", e),
}
}
}