mirror of
https://github.com/Noratrieb/haesli.git
synced 2026-01-14 19:55:03 +01:00
43 lines
957 B
Rust
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
|
|
}
|
|
}
|