mod claiming;
mod crud;
mod queries;
mod recovery;
mod state;
use super::DAL;
use crate::database::universal_types::UniversalUuid;
#[derive(Debug, Default)]
pub struct RetryStats {
pub tasks_with_retries: i32,
pub total_retries: i32,
pub max_attempts_used: i32,
pub tasks_exhausted_retries: i32,
}
#[derive(Debug)]
pub struct ClaimResult {
pub id: UniversalUuid,
pub pipeline_execution_id: UniversalUuid,
pub task_name: String,
pub attempt: i32,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum RunnerClaimResult {
Claimed,
AlreadyClaimed,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum HeartbeatResult {
Ok,
ClaimLost,
}
#[derive(Debug, Clone)]
pub struct StaleClaim {
pub task_id: UniversalUuid,
pub claimed_by: UniversalUuid,
pub heartbeat_at: chrono::DateTime<chrono::Utc>,
}
#[derive(Clone)]
pub struct TaskExecutionDAL<'a> {
dal: &'a DAL,
}
impl<'a> TaskExecutionDAL<'a> {
pub fn new(dal: &'a DAL) -> Self {
Self { dal }
}
}