#[non_exhaustive]pub struct RedisStateBackend { /* private fields */ }Expand description
Redis-backed state backend.
Stores invocations, calls, results, errors, and history as JSON strings in Redis keys with structured prefixes.
Implementations§
Trait Implementations§
Source§impl StateBackendCore for RedisStateBackend
impl StateBackendCore for RedisStateBackend
Source§fn upsert_invocation<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
invocation: &'life1 InvocationDTO,
call: &'life2 CallDTO,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn upsert_invocation<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
invocation: &'life1 InvocationDTO,
call: &'life2 CallDTO,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Store or update an invocation and its associated call.
Source§fn get_invocation<'life0, 'life1, 'async_trait>(
&'life0 self,
invocation_id: &'life1 InvocationId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<InvocationDTO>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_invocation<'life0, 'life1, 'async_trait>(
&'life0 self,
invocation_id: &'life1 InvocationId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<InvocationDTO>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retrieve an invocation by ID.
Source§fn get_call<'life0, 'life1, 'async_trait>(
&'life0 self,
call_id: &'life1 CallId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<CallDTO>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_call<'life0, 'life1, 'async_trait>(
&'life0 self,
call_id: &'life1 CallId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<CallDTO>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retrieve a call by ID.
Source§fn store_result<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
invocation_id: &'life1 InvocationId,
result: &'life2 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn store_result<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
invocation_id: &'life1 InvocationId,
result: &'life2 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Store the result of a successful invocation.
Source§fn get_result<'life0, 'life1, 'async_trait>(
&'life0 self,
invocation_id: &'life1 InvocationId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_result<'life0, 'life1, 'async_trait>(
&'life0 self,
invocation_id: &'life1 InvocationId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retrieve the result of a completed invocation.
Source§fn store_error<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
invocation_id: &'life1 InvocationId,
error: &'life2 TaskError,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn store_error<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
invocation_id: &'life1 InvocationId,
error: &'life2 TaskError,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Store error information for a failed invocation.
Source§fn get_error<'life0, 'life1, 'async_trait>(
&'life0 self,
invocation_id: &'life1 InvocationId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<TaskError>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_error<'life0, 'life1, 'async_trait>(
&'life0 self,
invocation_id: &'life1 InvocationId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<TaskError>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retrieve error information for a failed invocation.
Source§fn add_history<'life0, 'life1, 'async_trait>(
&'life0 self,
history: &'life1 InvocationHistory,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn add_history<'life0, 'life1, 'async_trait>(
&'life0 self,
history: &'life1 InvocationHistory,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Record a status change in the audit log.
Source§fn get_history<'life0, 'life1, 'async_trait>(
&'life0 self,
invocation_id: &'life1 InvocationId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<InvocationHistory>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_history<'life0, 'life1, 'async_trait>(
&'life0 self,
invocation_id: &'life1 InvocationId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<InvocationHistory>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get the full status history for an invocation.
Source§fn purge<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: '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,
Purge all stored data.
Source§fn backend_name(&self) -> &'static str
fn backend_name(&self) -> &'static str
Human-readable name of this backend implementation.
Source§impl StateBackendQuery for RedisStateBackend
impl StateBackendQuery for RedisStateBackend
Source§fn get_workflow_invocations<'life0, 'life1, 'async_trait>(
&'life0 self,
workflow_id: &'life1 InvocationId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<InvocationId>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_workflow_invocations<'life0, 'life1, 'async_trait>(
&'life0 self,
workflow_id: &'life1 InvocationId,
) -> 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 that belong to a workflow.
Source§fn get_child_invocations<'life0, 'life1, 'async_trait>(
&'life0 self,
parent_invocation_id: &'life1 InvocationId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<InvocationId>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_child_invocations<'life0, 'life1, 'async_trait>(
&'life0 self,
parent_invocation_id: &'life1 InvocationId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<InvocationId>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get direct child invocations of a parent invocation.
Source§fn store_workflow_run<'life0, 'life1, 'async_trait>(
&'life0 self,
workflow: &'life1 WorkflowIdentity,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn store_workflow_run<'life0, 'life1, 'async_trait>(
&'life0 self,
workflow: &'life1 WorkflowIdentity,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Store a workflow run for tracking and monitoring.
Source§fn get_all_workflow_types<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<TaskId>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_all_workflow_types<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<TaskId>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Retrieve all distinct workflow types (task IDs that have started workflows).
Source§fn get_workflow_runs<'life0, 'life1, 'async_trait>(
&'life0 self,
workflow_type: &'life1 TaskId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<WorkflowIdentity>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_workflow_runs<'life0, 'life1, 'async_trait>(
&'life0 self,
workflow_type: &'life1 TaskId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<WorkflowIdentity>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retrieve workflow run identities for a specific workflow type.
Source§fn set_workflow_data<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
workflow_id: &'life1 InvocationId,
key: &'life2 str,
value: &'life3 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn set_workflow_data<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
workflow_id: &'life1 InvocationId,
key: &'life2 str,
value: &'life3 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Set a value in the workflow’s key-value data store.
Source§fn get_workflow_data<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
workflow_id: &'life1 InvocationId,
key: &'life2 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_workflow_data<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
workflow_id: &'life1 InvocationId,
key: &'life2 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Get a value from the workflow’s key-value data store.
Source§fn store_app_info<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
app_id: &'life1 str,
info_json: &'life2 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn store_app_info<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
app_id: &'life1 str,
info_json: &'life2 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Store application info as opaque JSON.
Source§fn get_app_info<'life0, 'life1, 'async_trait>(
&'life0 self,
app_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_app_info<'life0, 'life1, 'async_trait>(
&'life0 self,
app_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get application info by ID.
Source§fn get_all_app_infos<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(String, String)>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_all_app_infos<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(String, String)>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get all stored application infos as (app_id, info_json) pairs.
Source§fn store_workflow_sub_invocation<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
workflow_id: &'life1 InvocationId,
sub_inv_id: &'life2 InvocationId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn store_workflow_sub_invocation<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
workflow_id: &'life1 InvocationId,
sub_inv_id: &'life2 InvocationId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Record a sub-invocation belonging to a workflow.
Source§fn get_workflow_sub_invocations<'life0, 'life1, 'async_trait>(
&'life0 self,
workflow_id: &'life1 InvocationId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<InvocationId>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_workflow_sub_invocations<'life0, 'life1, 'async_trait>(
&'life0 self,
workflow_id: &'life1 InvocationId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<InvocationId>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get all sub-invocations for a workflow.
Source§fn get_all_workflow_runs<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<WorkflowIdentity>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_all_workflow_runs<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<WorkflowIdentity>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get all workflow runs across all types. Read more
Source§impl StateBackendRunner for RedisStateBackend
impl StateBackendRunner for RedisStateBackend
Source§fn store_runner_context<'life0, 'life1, 'async_trait>(
&'life0 self,
context: &'life1 StoredRunnerContext,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn store_runner_context<'life0, 'life1, 'async_trait>(
&'life0 self,
context: &'life1 StoredRunnerContext,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Store a runner’s execution context for monitoring.
Source§fn get_runner_context<'life0, 'life1, 'async_trait>(
&'life0 self,
runner_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<StoredRunnerContext>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_runner_context<'life0, 'life1, 'async_trait>(
&'life0 self,
runner_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<StoredRunnerContext>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retrieve a runner’s execution context.
Source§fn get_runner_contexts_by_parent<'life0, 'life1, 'async_trait>(
&'life0 self,
parent_runner_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<StoredRunnerContext>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_runner_contexts_by_parent<'life0, 'life1, 'async_trait>(
&'life0 self,
parent_runner_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<StoredRunnerContext>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get all runner contexts whose
parent_runner_id matches the given runner.Source§fn get_invocation_ids_by_runner<'life0, 'life1, 'async_trait>(
&'life0 self,
runner_id: &'life1 str,
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,
fn get_invocation_ids_by_runner<'life0, 'life1, 'async_trait>(
&'life0 self,
runner_id: &'life1 str,
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,
Get invocation IDs that were processed by a specific runner (by runner_id in history). Read more
Source§fn count_invocations_by_runner<'life0, 'life1, 'async_trait>(
&'life0 self,
runner_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn count_invocations_by_runner<'life0, 'life1, 'async_trait>(
&'life0 self,
runner_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Count invocations that were processed by a specific runner.
Source§fn get_history_in_timerange<'life0, 'async_trait>(
&'life0 self,
start: DateTime<Utc>,
end: DateTime<Utc>,
limit: usize,
offset: usize,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<InvocationHistory>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_history_in_timerange<'life0, 'async_trait>(
&'life0 self,
start: DateTime<Utc>,
end: DateTime<Utc>,
limit: usize,
offset: usize,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<InvocationHistory>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get history entries within a time range, for monitoring log explorers.
Source§fn get_matching_runner_contexts<'life0, 'life1, 'async_trait>(
&'life0 self,
partial_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<StoredRunnerContext>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_matching_runner_contexts<'life0, 'life1, 'async_trait>(
&'life0 self,
partial_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<StoredRunnerContext>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get runner contexts whose runner_id contains the given partial string. Read more
Auto Trait Implementations§
impl Freeze for RedisStateBackend
impl !RefUnwindSafe for RedisStateBackend
impl Send for RedisStateBackend
impl Sync for RedisStateBackend
impl Unpin for RedisStateBackend
impl UnsafeUnpin for RedisStateBackend
impl !UnwindSafe for RedisStateBackend
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more