Skip to main content

TriggerStore

Trait TriggerStore 

Source
pub trait TriggerStore: Send + Sync {
Show 17 methods // Required methods fn register_condition<'life0, 'life1, 'async_trait>( &'life0 self, condition: &'life1 TriggerCondition, ) -> Pin<Box<dyn Future<Output = RustvelloResult<ConditionId>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_condition<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 ConditionId, ) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<TriggerCondition>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_conditions_for_task<'life0, 'life1, 'async_trait>( &'life0 self, task_id: &'life1 TaskId, ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(ConditionId, TriggerCondition)>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_cron_conditions<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(ConditionId, TriggerCondition)>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_event_conditions<'life0, 'life1, 'async_trait>( &'life0 self, event_code: &'life1 str, ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(ConditionId, TriggerCondition)>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn register_trigger<'life0, 'life1, 'async_trait>( &'life0 self, trigger: &'life1 TriggerDefinitionDTO, ) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_trigger<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 TriggerDefinitionId, ) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<TriggerDefinitionDTO>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_triggers_for_condition<'life0, 'life1, 'async_trait>( &'life0 self, cond_id: &'life1 ConditionId, ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<TriggerDefinitionDTO>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn remove_triggers_for_task<'life0, 'life1, 'async_trait>( &'life0 self, task_id: &'life1 TaskId, ) -> Pin<Box<dyn Future<Output = RustvelloResult<u32>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn record_valid_condition<'life0, 'life1, 'async_trait>( &'life0 self, vc: &'life1 ValidCondition, ) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_valid_conditions<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<ValidCondition>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn clear_valid_conditions<'life0, 'life1, 'async_trait>( &'life0 self, ids: &'life1 [String], ) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_last_cron_execution<'life0, 'life1, 'async_trait>( &'life0 self, cond_id: &'life1 ConditionId, ) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<DateTime<Utc>>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn store_cron_execution<'life0, 'life1, 'async_trait>( &'life0 self, cond_id: &'life1 ConditionId, time: DateTime<Utc>, expected_last: Option<DateTime<Utc>>, ) -> Pin<Box<dyn Future<Output = RustvelloResult<bool>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn claim_trigger_run<'life0, 'life1, 'async_trait>( &'life0 self, run_id: &'life1 TriggerRunId, ) -> Pin<Box<dyn Future<Output = RustvelloResult<bool>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn purge<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_all_conditions<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(ConditionId, TriggerCondition)>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait;
}
Expand description

Async persistence interface for the trigger subsystem.

Mirrors pynenc’s BaseTrigger storage methods. Implementations must be thread-safe (Send + Sync).

Required Methods§

Source

fn register_condition<'life0, 'life1, 'async_trait>( &'life0 self, condition: &'life1 TriggerCondition, ) -> Pin<Box<dyn Future<Output = RustvelloResult<ConditionId>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Register a condition and return its deterministic ID.

Source

fn get_condition<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 ConditionId, ) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<TriggerCondition>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get a condition by ID.

Source

fn get_conditions_for_task<'life0, 'life1, 'async_trait>( &'life0 self, task_id: &'life1 TaskId, ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(ConditionId, TriggerCondition)>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get all conditions that watch a specific task.

Source

fn get_cron_conditions<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(ConditionId, TriggerCondition)>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get all cron conditions.

Source

fn get_event_conditions<'life0, 'life1, 'async_trait>( &'life0 self, event_code: &'life1 str, ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(ConditionId, TriggerCondition)>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get all event conditions matching an event code.

Source

fn register_trigger<'life0, 'life1, 'async_trait>( &'life0 self, trigger: &'life1 TriggerDefinitionDTO, ) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Register a trigger definition.

Source

fn get_trigger<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 TriggerDefinitionId, ) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<TriggerDefinitionDTO>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get a trigger definition by ID.

Source

fn get_triggers_for_condition<'life0, 'life1, 'async_trait>( &'life0 self, cond_id: &'life1 ConditionId, ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<TriggerDefinitionDTO>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get all trigger definitions that reference a given condition.

Source

fn remove_triggers_for_task<'life0, 'life1, 'async_trait>( &'life0 self, task_id: &'life1 TaskId, ) -> Pin<Box<dyn Future<Output = RustvelloResult<u32>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Remove all trigger definitions for a task.

Source

fn record_valid_condition<'life0, 'life1, 'async_trait>( &'life0 self, vc: &'life1 ValidCondition, ) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Record a condition that has been evaluated and found satisfied.

Source

fn get_valid_conditions<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<ValidCondition>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get all pending valid conditions.

Source

fn clear_valid_conditions<'life0, 'life1, 'async_trait>( &'life0 self, ids: &'life1 [String], ) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Clear valid conditions by their IDs (after processing).

Source

fn get_last_cron_execution<'life0, 'life1, 'async_trait>( &'life0 self, cond_id: &'life1 ConditionId, ) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<DateTime<Utc>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get the last cron execution time for a condition.

Source

fn store_cron_execution<'life0, 'life1, 'async_trait>( &'life0 self, cond_id: &'life1 ConditionId, time: DateTime<Utc>, expected_last: Option<DateTime<Utc>>, ) -> Pin<Box<dyn Future<Output = RustvelloResult<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Store a cron execution time with optimistic locking. Returns true if the store succeeded (expected_last matched).

Source

fn claim_trigger_run<'life0, 'life1, 'async_trait>( &'life0 self, run_id: &'life1 TriggerRunId, ) -> Pin<Box<dyn Future<Output = RustvelloResult<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Attempt to claim a trigger run. Returns true if this is first claim.

Source

fn purge<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Purge all trigger data.

Source

fn get_all_conditions<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(ConditionId, TriggerCondition)>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get all registered conditions regardless of type.

Every backend must return the complete set of stored conditions (Cron, Status, Event, Result, Exception, Composite).

Implementors§