later 0.0.45

Distributed Background jobs manager and runner for Rust
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(())
}