mod support;
use later::{backend::PostgresBackend, storage::Postgres};
use support::{start_server, PrintJob};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let database_url = std::env::var("DATABASE_URL")
.unwrap_or_else(|_| "postgres://test:test@127.0.0.1:55432/later_test".to_string());
let storage = Postgres::new(&database_url).await?;
let backend = PostgresBackend::new("postgres-example", storage)?;
let server = start_server("postgres-server", Box::new(backend)).await?;
for number in 1..=3 {
server
.enqueue(PrintJob {
message: format!("job {number}"),
failures_before_success: 0,
})
.await?;
}
println!("Jobs enqueued. Press Ctrl-C to stop the server.");
tokio::signal::ctrl_c().await?;
Ok(())
}