- apps/app: remove mod logging, replace init_tracing_subscriber() call, remove slog macros from main.rs, remove logging.rs - apps/gitserver: remove slog usage from main.rs - apps/git-hook: remove slog from main.rs - apps/email: remove slog from main.rs
34 lines
893 B
Rust
34 lines
893 B
Rust
use clap::Parser;
|
|
use config::AppConfig;
|
|
use observability::init_tracing_subscriber;
|
|
use service::AppService;
|
|
|
|
#[derive(Parser, Debug)]
|
|
#[command(name = "email-worker")]
|
|
#[command(version)]
|
|
struct Args {
|
|
#[arg(long, default_value = "info")]
|
|
log_level: String,
|
|
}
|
|
|
|
#[tokio::main]
|
|
async fn main() -> anyhow::Result<()> {
|
|
let args = Args::parse();
|
|
let cfg = AppConfig::load();
|
|
init_tracing_subscriber(&args.log_level);
|
|
|
|
tracing::info!("Starting email worker");
|
|
let service = AppService::new(cfg).await?;
|
|
|
|
let (shutdown_tx, shutdown_rx) = tokio::sync::broadcast::channel::<()>(1);
|
|
tokio::spawn(async move {
|
|
tokio::signal::ctrl_c().await.ok();
|
|
tracing::info!("shutting down email worker");
|
|
let _ = shutdown_tx.send(());
|
|
});
|
|
|
|
service.start_email_workers(shutdown_rx).await?;
|
|
tracing::info!("email worker stopped");
|
|
Ok(())
|
|
}
|