haesli/amqp_messaging/src/queue.rs
2022-03-05 18:10:04 +01:00

43 lines
957 B
Rust

use amqp_core::{
queue::{Queue, QueueEventReceiver},
GlobalData,
};
use tracing::{debug, info};
#[derive(Debug)]
#[allow(dead_code)]
pub struct QueueTask {
global_data: GlobalData,
event_recv: QueueEventReceiver,
queue: Queue,
}
impl QueueTask {
pub fn new(global_data: GlobalData, event_recv: QueueEventReceiver, queue: Queue) -> Self {
Self {
global_data,
event_recv,
queue,
}
}
pub async fn start(mut self) {
info!("Started queue worker task");
loop {
let next_event = self.event_recv.recv().await;
match next_event {
Some(event) => debug!(?event, "Received event"),
None => {
self.cleanup().await;
return;
}
}
}
}
async fn cleanup(&mut self) {
// do stuff or something like that id whatever
}
}