qrush_engine/job.rs
1// src/job.rs
2use async_trait::async_trait;
3
4#[async_trait]
5pub trait Job: Send + Sync {
6 async fn before(&self) -> anyhow::Result<()> {
7 Ok(())
8 }
9
10 async fn perform(&self) -> anyhow::Result<()> {
11 Ok(())
12 }
13
14 async fn after(&self) {}
15 async fn on_error(&self, _err: &anyhow::Error) {}
16 async fn always(&self) {}
17
18 fn name(&self) -> &'static str;
19 fn queue(&self) -> &'static str;
20}