Worker

Struct Worker 

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

A worker that can poll for and respond to workflow tasks by using WorkflowFunctions, and activity tasks by using ActivityFunctions

Implementations§

Source§

impl Worker

Source

pub fn new_from_core( worker: Arc<dyn CoreWorker>, task_queue: impl Into<String>, ) -> Self

Create a new Rust SDK worker from a core worker

Source

pub fn task_queue(&self) -> &str

Returns the task queue name this worker polls on

Source

pub fn shutdown_handle(&self) -> impl Fn() + use<>

Return a handle that can be used to initiate shutdown. TODO: Doc better after shutdown changes

Source

pub fn register_wf( &mut self, workflow_type: impl Into<String>, wf_function: impl Into<WorkflowFunction>, )

Register a Workflow function to invoke when the Worker is asked to run a workflow of workflow_type

Source

pub fn register_activity<A, R, O>( &mut self, activity_type: impl Into<String>, act_function: impl IntoActivityFunc<A, R, O>, )

Register an Activity function to invoke when the Worker is asked to run an activity of activity_type

Source

pub fn insert_app_data<T: Send + Sync + 'static>(&mut self, data: T)

Insert Custom App Context for Workflows and Activities

Source

pub async fn run(&mut self) -> Result<(), Error>

Runs the worker. Eventually resolves after the worker has been explicitly shut down, or may return early with an error in the event of some unresolvable problem.

Source

pub fn set_worker_interceptor( &mut self, interceptor: impl WorkerInterceptor + 'static, )

Source

pub fn with_new_core_worker(&mut self, new_core_worker: Arc<dyn CoreWorker>)

Turns this rust worker into a new worker with all the same workflows and activities registered, but with a new underlying core worker. Can be used to swap the worker for a replay worker, change task queues, etc.

Source

pub fn cached_workflows(&self) -> usize

Returns number of currently cached workflows as understood by the SDK. Importantly, this is not the same as understood by core, though they should always be in sync.

Auto Trait Implementations§

§

impl !Freeze for Worker

§

impl !RefUnwindSafe for Worker

§

impl !Send for Worker

§

impl !Sync for Worker

§

impl Unpin for Worker

§

impl !UnwindSafe for Worker

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

§

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

§

fn from(t: T) -> T

Returns the argument unchanged.

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, 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,