use std::sync::Arc;
use chronon::prelude::*;
use chronon_backend_sqlite::SqliteSchedulerStore;
#[tokio::main]
async fn main() -> chronon::Result<()> {
let path =
std::env::var("CHRONON_SQLITE_PATH").unwrap_or_else(|_| "/tmp/chronon-example.db".into());
let store: Arc<dyn SchedulerStore> = if path == ":memory:" {
Arc::new(SqliteSchedulerStore::connect("sqlite://:memory:").await?)
} else {
Arc::new(SqliteSchedulerStore::new(&path).await?)
};
let chronon = ChrononBuilder::new()
.scheduler_store(store)
.embedded()
.build()?;
assert_eq!(chronon.executor().script_count(), 0);
eprintln!("Chronon booted with SQLite store ({path})");
Ok(())
}