Skip to main content

Worker

Struct Worker 

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

A worker that can poll for and respond to workflow tasks by using temporalio_macros::workflow, and activity tasks by using activities defined with temporalio_macros::activities.

Implementations§

Source§

impl Worker

Source

pub fn new( runtime: &CoreRuntime, client: Client, options: WorkerOptions, ) -> Result<Self, Box<dyn Error>>

Create a new worker from an existing connection, and options.

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. This is useful because Worker::run takes self mutably, so you may want to obtain a handle for shutting down before running.

Source

pub fn register_activities<AI: ActivityImplementer>( &mut self, instance: AI, ) -> &mut Self

Registers all activities on an activity implementer.

Source

pub fn register_activity<AD>( &mut self, instance: Arc<AD::Implementer>, ) -> &mut Self
where AD: ActivityDefinition + ExecutableActivity, AD::Output: Send + Sync,

Registers a specific activitiy.

Source

pub fn register_workflow<WI: WorkflowImplementer>(&mut self) -> &mut Self

Registers all workflows on a workflow implementer.

Source

pub fn register_workflow_with_factory<W, F>(&mut self, factory: F) -> &mut Self
where W: WorkflowImplementation, <W::Run as WorkflowDefinition>::Input: Send, F: Fn() -> W + Send + Sync + 'static,

Register a workflow with a custom factory for instance creation.

See WorkerOptionsBuilder::register_workflow_with_factory for more.

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

Source

pub fn worker_instance_key(&self) -> Uuid

Returns the instance key for this worker, used for worker heartbeating.

Auto Trait Implementations§

§

impl !Freeze for Worker

§

impl !RefUnwindSafe for Worker

§

impl !Send for Worker

§

impl !Sync for Worker

§

impl Unpin for Worker

§

impl UnsafeUnpin for Worker

§

impl !UnwindSafe for Worker

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

Source§

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

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

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

Source§

type Error = Infallible

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

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