Skip to main content

ExecStatusManager

Trait ExecStatusManager 

Source
pub trait ExecStatusManager: Send + Sync {
    // Required methods
    fn is_completed<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        data_id: &'life1 str,
        pipeline_name: &'life2 str,
        dataset_id: Option<Uuid>,
    ) -> Pin<Box<dyn Future<Output = Result<bool, Box<dyn Error + Sync + Send>>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait,
             Self: 'async_trait;
    fn mark_completed<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        data_id: &'life1 str,
        pipeline_name: &'life2 str,
        dataset_id: Option<Uuid>,
    ) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Sync + Send>>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait,
             Self: 'async_trait;
    fn mark_failed<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        data_id: &'life1 str,
        pipeline_name: &'life2 str,
        dataset_id: Option<Uuid>,
        error: &'life3 str,
    ) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Sync + Send>>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait,
             'life3: 'async_trait,
             Self: 'async_trait;
    fn stamp_provenance<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
        &'life0 self,
        data_id: &'life1 str,
        pipeline_name: &'life2 str,
        task_name: &'life3 str,
        user_id: Option<Uuid>,
        node_set: Option<&'life4 str>,
    ) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Sync + Send>>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait,
             'life3: 'async_trait,
             'life4: 'async_trait,
             Self: 'async_trait;
}
Expand description

Per-data-item status tracking for incremental pipeline execution.

The executor queries is_completed before processing each item and calls mark_completed / mark_failed afterwards. This enables safe resume after partial failures and prevents re-processing on re-runs.

Separate from PipelineWatcher by design: the watcher is a write-only observer, while this trait is bidirectional (the executor reads is_completed to decide whether to skip).

Required Methods§

Source

fn is_completed<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, data_id: &'life1 str, pipeline_name: &'life2 str, dataset_id: Option<Uuid>, ) -> Pin<Box<dyn Future<Output = Result<bool, Box<dyn Error + Sync + Send>>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

Returns true if this item was already successfully processed for the given (pipeline_name, dataset_id) combination.

Source

fn mark_completed<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, data_id: &'life1 str, pipeline_name: &'life2 str, dataset_id: Option<Uuid>, ) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Sync + Send>>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

Mark the item as successfully completed.

Source

fn mark_failed<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, data_id: &'life1 str, pipeline_name: &'life2 str, dataset_id: Option<Uuid>, error: &'life3 str, ) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Sync + Send>>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, Self: 'async_trait,

Mark the item as failed (used for diagnostics / resume).

Source

fn stamp_provenance<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>( &'life0 self, data_id: &'life1 str, pipeline_name: &'life2 str, task_name: &'life3 str, user_id: Option<Uuid>, node_set: Option<&'life4 str>, ) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Sync + Send>>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait, Self: 'async_trait,

Record provenance metadata for a processed data point.

Called by the executor after each task succeeds (point 9 — provenance stamping). node_set is an opaque label identifying the set of graph nodes produced by the task.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§