Skip to main content

OrchestratorQuery

Trait OrchestratorQuery 

Source
pub trait OrchestratorQuery: OrchestratorStatus {
    // Required methods
    fn get_invocations_by_task<'life0, 'life1, 'async_trait>(
        &'life0 self,
        task_id: &'life1 TaskId,
    ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<InvocationId>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn get_invocations_by_call<'life0, 'life1, 'async_trait>(
        &'life0 self,
        call_id: &'life1 CallId,
    ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<InvocationId>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn get_invocations_by_status<'life0, 'life1, 'async_trait>(
        &'life0 self,
        status: InvocationStatus,
        task_id: Option<&'life1 TaskId>,
    ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<InvocationId>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn count_invocations<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        task_id: Option<&'life1 TaskId>,
        statuses: Option<&'life2 [InvocationStatus]>,
    ) -> Pin<Box<dyn Future<Output = RustvelloResult<usize>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn get_invocation_ids_paginated<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        task_id: Option<&'life1 TaskId>,
        statuses: Option<&'life2 [InvocationStatus]>,
        limit: usize,
        offset: usize,
    ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<InvocationId>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn get_blocking_invocations<'life0, 'async_trait>(
        &'life0 self,
        max_num: usize,
    ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<InvocationId>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn get_existing_invocations<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        task_id: &'life1 TaskId,
        cc_args: Option<&'life2 SerializedArguments>,
        statuses: &'life3 [InvocationStatus],
    ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<InvocationId>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait,
             'life3: 'async_trait;

    // Provided method
    fn filter_by_status<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        invocation_ids: &'life1 [InvocationId],
        statuses: &'life2 [InvocationStatus],
    ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<InvocationId>>> + Send + 'async_trait>>
       where Self: Sync + 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait { ... }
}
Expand description

Query operations for finding and filtering invocations.

Required Methods§

Source

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

Get all invocation IDs for a given task.

Source

fn get_invocations_by_call<'life0, 'life1, 'async_trait>( &'life0 self, call_id: &'life1 CallId, ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<InvocationId>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get all invocation IDs for a given call.

Source

fn get_invocations_by_status<'life0, 'life1, 'async_trait>( &'life0 self, status: InvocationStatus, task_id: Option<&'life1 TaskId>, ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<InvocationId>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get invocations with a specific status, optionally filtered by task.

Source

fn count_invocations<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, task_id: Option<&'life1 TaskId>, statuses: Option<&'life2 [InvocationStatus]>, ) -> Pin<Box<dyn Future<Output = RustvelloResult<usize>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Count invocations, optionally filtered by task and/or statuses.

Mirrors pynenc’s BaseOrchestrator.count_invocations.

Source

fn get_invocation_ids_paginated<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, task_id: Option<&'life1 TaskId>, statuses: Option<&'life2 [InvocationStatus]>, limit: usize, offset: usize, ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<InvocationId>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Get paginated invocation IDs, optionally filtered by task and statuses.

Mirrors pynenc’s BaseOrchestrator.get_invocation_ids_paginated.

Source

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

Get invocations that are blocking other invocations but are not blocked themselves.

Returns up to max_num invocations that have waiters but are themselves in an available-for-run status. Mirrors pynenc’s BaseBlockingControl.get_blocking_invocations.

Source

fn get_existing_invocations<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, task_id: &'life1 TaskId, cc_args: Option<&'life2 SerializedArguments>, statuses: &'life3 [InvocationStatus], ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<InvocationId>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

Find existing invocations for a task, filtered by concurrency-control key arguments and statuses.

Used by route_call() / submit_with_cc() to implement registration concurrency control — deduplicating invocations with the same key args that are still in a non-terminal status.

Mirrors pynenc’s BaseOrchestrator.get_existing_invocations.

  • cc_args: When Some, only return invocations whose CC key matches. When None, return all invocations for the task (task-level CC).
  • statuses: Only return invocations in one of these statuses.

Provided Methods§

Source

fn filter_by_status<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, invocation_ids: &'life1 [InvocationId], statuses: &'life2 [InvocationStatus], ) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<InvocationId>>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Filter a set of invocation IDs by status.

Returns only the invocation IDs whose current status matches any status in the filter. Mirrors pynenc’s BaseOrchestrator.filter_by_status.

Implementors§