Skip to main content

SupervisorBuilder

Struct SupervisorBuilder 

Source
pub struct SupervisorBuilder<'a> { /* private fields */ }
Expand description

Builds a Supervisor with configurable runtime loops.

Worker execution, durable intent promotion, scheduler, and reaper loops are enabled by default. Disabling the worker also disables intent promotion; SupervisorBuilder::disable_intent_promoter can disable only promotion. Every enabled supervisor polls independently, including when no intents are pending. Deployments may tune IntentPromoterConfig or disable redundant promoters, but must retain promoter coverage for every registered type that can receive durable intents. Call SupervisorBuilder::with_registry or SupervisorBuilder::with_catalog before SupervisorBuilder::build when worker or reaper loops remain enabled.

Implementations§

Source§

impl<'a> SupervisorBuilder<'a>

Source

pub fn with_registry(self, registry: JobRegistry) -> Self

Registers the handlers used by worker execution and reaper terminal hooks.

A registry is required when worker or reaper loops are enabled. Scheduler-only supervisors can be built without one.

Source

pub fn with_catalog(self, catalog: impl Borrow<JobCatalog>) -> Self

Registers handlers from a JobCatalog.

This does not sync database job definitions. Call JobCatalog::sync_definitions before starting the supervisor or creating schedules. Pass &catalog when the caller will continue using the catalog for schedule, enqueue, or workflow helpers after building the supervisor.

§Registry Source

Calling this and Self::with_registry on the same builder is rejected by Self::build. Choose one registration source per builder.

Source

pub fn disable_worker(self) -> Self

Disables worker job claiming, execution, and durable intent promotion for this supervisor.

Source

pub fn disable_intent_promoter(self) -> Self

Disables durable enqueue-intent promotion while leaving ordinary worker claiming and execution enabled.

Use this only when another compatible promoter covers every job type that can receive intents, or when the application never records intents. Disabling all applicable promoters leaves accepted intents pending indefinitely.

Source

pub fn with_intent_promoter_config(self, config: IntentPromoterConfig) -> Self

Overrides the intent promoter’s polling and batch controls.

This does not enable a promoter disabled by Self::disable_worker or Self::disable_intent_promoter.

Source

pub fn disable_scheduler(self) -> Self

Disables cron schedule materialization for this supervisor.

Source

pub fn disable_reaper(self) -> Self

Disables expired-lease reaping for this supervisor.

Source

pub fn with_job_lifecycle_observer( self, observer: impl JobLifecycleObserver + 'static, ) -> Self

Registers a best-effort observer for committed job lifecycle events.

Observer callbacks run outside Runledger storage transactions. A callback timeout or panic is logged and does not change durable job state.

Source

pub fn build(self) -> Result<Supervisor, RuntimeError>

Starts the enabled runtime loops and returns the owning supervisor.

Returns an error when worker or reaper loops are enabled without a job registry.

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for SupervisorBuilder<'a>

§

impl<'a> !UnwindSafe for SupervisorBuilder<'a>

§

impl<'a> Freeze for SupervisorBuilder<'a>

§

impl<'a> Send for SupervisorBuilder<'a>

§

impl<'a> Sync for SupervisorBuilder<'a>

§

impl<'a> Unpin for SupervisorBuilder<'a>

§

impl<'a> UnsafeUnpin for SupervisorBuilder<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more