#[path = "shared/remote_ping.rs"]
mod remote_shared_task;
use std::sync::Arc;
use std::time::Duration;
use boson::{configure, Boson, JsonExecutionContextFactory, SqliteQueueBackend};
use remote_shared_task::{RemotePing, RemotePingParams};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let path = std::env::var("BOSON_SQLITE_PATH").unwrap_or_else(|_| "/tmp/boson-remote.db".into());
let backend = SqliteQueueBackend::new(&path).await?;
let boson = Boson::builder()
.queue_backend(Arc::new(backend))
.execution_context_factory(JsonExecutionContextFactory)
.auto_registry()
.without_worker()
.build()?;
configure(boson);
let job_id = RemotePing::send_with(
serde_json::json!({"System": {"operation": "remote-demo"}}),
RemotePingParams {
message: "hello from enqueue host".into(),
},
)
.await?;
println!("enqueued job_id={job_id} (path={path})");
tokio::time::sleep(Duration::from_millis(200)).await;
Ok(())
}