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}