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}