distributed-scheduler 2.2.4

A distributed cronjob library
Documentation
use distributed_scheduler::{cron, driver, node_pool};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    tracing_subscriber::fmt::init();

    let rdb = redis::Client::open("redis://localhost:6379").unwrap();

    let driver = driver::redis_zset::RedisZSetDriver::new(
        rdb.get_multiplexed_tokio_connection().await?,
        "example-service",
        &uuid::Uuid::new_v4().to_string(),
    )
    .await?;
    let np = node_pool::NodePool::new(driver).await?;
    let cron = cron::Cron::new(np).await;

    tracing::info!("Adding job");
    cron.add_job("test", "* * * * * *".parse().unwrap(), || {
        tracing::info!("Running job: {}", chrono::Utc::now());
    })
    .await?;

    tracing::info!("Starting cron");
    cron.start().await?;

    Ok(())
}