use bissel::*;
use std::time::Duration;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let file_appender = tracing_appender::rolling::hourly("logs/", "subscription");
let (non_blocking, _guard) = tracing_appender::non_blocking(file_appender);
tracing_subscriber::fmt().with_writer(non_blocking).init();
let mut host: Host = HostConfig::new("lo").build()?;
host.start()?;
println!("Host should be running in the background");
let writer = NodeConfig::new("WRITER")
.topic("subscription")
.build()?
.connect()?;
let reader = writer
.rebuild_config()
.name("READER")
.build()?
.subscribe(Duration::from_millis(100))?;
let result = reader.get_subscribed_data()?;
dbg!(result);
for i in 0..500 {
println!("publishing {}", i);
writer.publish(i as usize)?;
std::thread::sleep(std::time::Duration::from_millis(500));
let result = reader.get_subscribed_data()?;
dbg!(result);
}
host.stop()?;
Ok(())
}