pub struct LiminalTaskDelivery { /* private fields */ }Expand description
Delivers by pushing the dispatch out on the worker’s liminal connection and blocking for the correlated reply.
The reply is the activity’s completion, so this arm re-enters it through the same completion path the gRPC transport’s out-of-band completion uses.
Implementations§
Source§impl LiminalTaskDelivery
impl LiminalTaskDelivery
Sourcepub fn new(completion: Arc<LiminalCompletionSource>) -> Self
pub fn new(completion: Arc<LiminalCompletionSource>) -> Self
Build the liminal delivery arm over the completion sink both transports share.
Sourcepub fn with_completion_tracking(
self,
heartbeat_tracker: HeartbeatTracker,
registry: ConnectedWorkerRegistry,
) -> Self
pub fn with_completion_tracking( self, heartbeat_tracker: HeartbeatTracker, registry: ConnectedWorkerRegistry, ) -> Self
Retire a completed dispatch from the liveness tracker when the reply lands, so this transport’s completion removes its tracked entry exactly as the gRPC session loop’s result arm does.
Required wherever the dispatcher above this arm tracks its dispatches
(ActivityDispatcher::with_heartbeat_tracker). Without it the entry made
before the push is never removed on this transport, and the worker’s
advertised capacity is consumed permanently, one slot per delivery.
Sourcepub fn with_attempt_owners(self, attempt_owners: AttemptOwnerIndex) -> Self
pub fn with_attempt_owners(self, attempt_owners: AttemptOwnerIndex) -> Self
Install the NOI-6 attempt-owner back-index, so a dispatched attempt binds its owning worker before the push and the intervention router can resolve the current owner of a live attempt.
Trait Implementations§
Source§impl Debug for LiminalTaskDelivery
impl Debug for LiminalTaskDelivery
Source§impl WorkerTaskDelivery for LiminalTaskDelivery
impl WorkerTaskDelivery for LiminalTaskDelivery
Source§fn deliver<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
worker: &'life1 WorkerHandle,
task: &'life2 ProtoActivityTask,
intent: &'life3 SharedDeliveryIntent,
accepted: &'life4 dyn DeliveryAccepted,
) -> Pin<Box<dyn Future<Output = TaskDelivery> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn deliver<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
worker: &'life1 WorkerHandle,
task: &'life2 ProtoActivityTask,
intent: &'life3 SharedDeliveryIntent,
accepted: &'life4 dyn DeliveryAccepted,
) -> Pin<Box<dyn Future<Output = TaskDelivery> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Auto Trait Implementations§
impl !RefUnwindSafe for LiminalTaskDelivery
impl !UnwindSafe for LiminalTaskDelivery
impl Freeze for LiminalTaskDelivery
impl Send for LiminalTaskDelivery
impl Sync for LiminalTaskDelivery
impl Unpin for LiminalTaskDelivery
impl UnsafeUnpin for LiminalTaskDelivery
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> IntoMaybeUndefined<T> for T
impl<T> IntoMaybeUndefined<T> for T
Source§fn into_maybe_undefined(self) -> MaybeUndefined<T>
fn into_maybe_undefined(self) -> MaybeUndefined<T>
Source§impl<T> IntoOption<T> for T
impl<T> IntoOption<T> for T
Source§fn into_option(self) -> Option<T>
fn into_option(self) -> Option<T>
Source§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>
T in a tonic::Request