WfContext

Struct WfContext 

Source
pub struct WfContext { /* private fields */ }
Expand description

Used within workflows to issue commands, get info, etc.

Implementations§

Source§

impl WfContext

Source

pub fn namespace(&self) -> &str

Return the namespace the workflow is executing in

Source

pub fn task_queue(&self) -> &str

Return the task queue the workflow is executing in

Source

pub fn get_args(&self) -> &[Payload]

Get the arguments provided to the workflow upon execution start

Source

pub fn workflow_time(&self) -> Option<SystemTime>

Return the current time according to the workflow (which is not wall-clock time).

Source

pub fn history_length(&self) -> u32

Return the length of history so far at this point in the workflow

Source

pub fn current_deployment_version(&self) -> Option<WorkerDeploymentVersion>

Return the deployment version, if any, as it was when this point in the workflow was first reached. If this code is being executed for the first time, return this Worker’s deployment version if it has one.

Source

pub fn search_attributes(&self) -> impl Deref<Target = SearchAttributes> + '_

Return current values for workflow search attributes

Source

pub fn random_seed(&self) -> u64

Return the workflow’s randomness seed

Source

pub fn is_replaying(&self) -> bool

Returns true if the current workflow task is happening under replay

Source

pub fn workflow_initial_info(&self) -> &InitializeWorkflow

Return various information that the workflow was initialized with. Will eventually become a proper non-proto workflow info struct.

Source

pub async fn cancelled(&self) -> String

A future that resolves if/when the workflow is cancelled, with the user provided cause

Source

pub fn timer<T: Into<TimerOptions>>( &self, opts: T, ) -> impl CancellableFuture<TimerResult>

Request to create a timer

Source

pub fn activity( &self, opts: ActivityOptions, ) -> impl CancellableFuture<ActivityResolution>

Request to run an activity

Source

pub fn local_activity( &self, opts: LocalActivityOptions, ) -> impl CancellableFuture<ActivityResolution> + '_

Request to run a local activity

Source

pub fn child_workflow(&self, opts: ChildWorkflowOptions) -> ChildWorkflow

Creates a child workflow stub with the provided options

Source

pub fn patched(&self, patch_id: &str) -> bool

Check (or record) that this workflow history was created with the provided patch

Source

pub fn deprecate_patch(&self, patch_id: &str) -> bool

Record that this workflow history was created with the provided patch, and it is being phased out.

Source

pub fn signal_workflow( &self, opts: impl Into<SignalWorkflowOptions>, ) -> impl CancellableFuture<SignalExternalWfResult>

Send a signal to an external workflow. May resolve as a failure if the signal didn’t work or was cancelled.

Source

pub fn upsert_search_attributes( &self, attr_iter: impl IntoIterator<Item = (String, Payload)>, )

Add or create a set of search attributes

Source

pub fn upsert_memo( &self, attr_iter: impl IntoIterator<Item = (String, Payload)>, )

Add or create a set of search attributes

Source

pub fn make_signal_channel( &self, signal_name: impl Into<String>, ) -> DrainableSignalStream

Return a stream that produces values when the named signal is sent to this workflow

Source

pub fn force_task_fail(&self, with: Error)

Force a workflow task failure (EX: in order to retry on non-sticky queue)

Source

pub fn cancel_external( &self, target: NamespacedWorkflowExecution, reason: String, ) -> impl Future<Output = CancelExternalWfResult>

Request the cancellation of an external workflow. May resolve as a failure if the workflow was not found or the cancel was otherwise unsendable.

Source

pub fn update_handler<Arg, Res>( &self, name: impl Into<String>, validator: impl IntoUpdateValidatorFunc<Arg>, handler: impl IntoUpdateHandlerFunc<Arg, Res>, )

Register an update handler by providing the handler name, a validator function, and an update handler. The validator must not mutate workflow state and is synchronous. The handler may mutate workflow state (though, that’s annoying right now in the prototype) and is async.

Note that if you want a validator that always passes, you will likely need to provide type annotations to make the compiler happy, like: |_: &_, _: T| Ok(())

Source

pub fn start_nexus_operation( &self, opts: NexusOperationOptions, ) -> impl CancellableFuture<Result<StartedNexusOperation, Failure>>

Start a nexus operation

Source

pub fn wait_condition( &self, condition: impl FnMut() -> bool, ) -> impl Future<Output = ()>

Wait for some condition to become true, yielding the workflow if it is not.

Trait Implementations§

Source§

impl Clone for WfContext

Source§

fn clone(&self) -> WfContext

Returns a duplicate of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Any for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Source§

fn type_name(&self) -> &'static str

Source§

impl<T> AnySync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
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
§

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

§

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> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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

§

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

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

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

impl<T> ErasedDestructor for T
where T: 'static,