mirror of
https://github.com/Noratrieb/haesli.git
synced 2026-01-15 20:25:02 +01:00
queue worker task
This commit is contained in:
parent
f860714b2b
commit
800ccae604
8 changed files with 111 additions and 36 deletions
43
amqp_messaging/src/queue.rs
Normal file
43
amqp_messaging/src/queue.rs
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
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
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue