#![allow(clippy::print_stdout)]
#[path = "shared/remote_ping.rs"]
mod remote_shared_task;
use std::time::Duration;
use boson::{configure, Boson, JsonExecutionContextFactory};
use boson_backend_nats::connect_auto;
use remote_shared_task::{RemotePing, RemotePingParams};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let url = std::env::var("BOSON_NATS_URL").unwrap_or_else(|_| "nats://127.0.0.1:4222".into());
let backend = connect_auto(&url).await?;
let boson = Boson::builder()
.queue_backend(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 nats workqueue enqueue host".into(),
},
)
.await?;
println!("enqueued job_id={job_id} (url={url})");
tokio::time::sleep(Duration::from_millis(200)).await;
Ok(())
}