pub struct SqlWorkflowEngine { /* private fields */ }Expand description
PostgreSQL-backed workflow runtime engine.
Provides durable implementations of sleep(), await_deferred(), and
resolve_deferred() that persist to the database and survive restarts.
§Example
use sqlx::postgres::PgPool;
use cruster::storage::sql_workflow_runtime::SqlWorkflowEngine;
let pool = PgPool::connect("postgres://...").await?;
cruster::storage::migrate(&pool).await?;
let engine = SqlWorkflowEngine::new(pool);Implementations§
Source§impl SqlWorkflowEngine
impl SqlWorkflowEngine
Sourcepub fn new(pool: PgPool) -> Self
pub fn new(pool: PgPool) -> Self
Create a new SQL workflow runtime engine with the given connection pool.
Run crate::storage::migrate before using SQL storage backends.
Sourcepub fn with_poll_interval(pool: PgPool, poll_interval: Duration) -> Self
pub fn with_poll_interval(pool: PgPool, poll_interval: Duration) -> Self
Create a new SQL workflow runtime engine with a custom poll interval.
The poll interval controls how often the engine checks the database for timer/deferred state changes. Lower values provide faster response but increase database load.
Auto Trait Implementations§
impl Freeze for SqlWorkflowEngine
impl !RefUnwindSafe for SqlWorkflowEngine
impl Send for SqlWorkflowEngine
impl Sync for SqlWorkflowEngine
impl Unpin for SqlWorkflowEngine
impl UnsafeUnpin for SqlWorkflowEngine
impl !UnwindSafe for SqlWorkflowEngine
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> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request