shiny_jobs/lib.rs
1use std::sync::Arc;
2use shiny_common::context::Context;
3use shiny_common::error::ServiceError;
4use crate::job_trigger::JobTrigger;
5
6pub mod jobs_executor;
7pub mod job_trigger;
8
9#[async_trait::async_trait]
10pub trait Job: Send + Sync + 'static {
11 async fn execute(&self, context: &mut Context) -> Result<(), ServiceError>;
12}
13
14pub struct JobDefinition {
15 pub job: Arc<dyn Job>,
16 pub trigger: Arc<dyn JobTrigger>,
17 pub name: String,
18}