Skip to main content

HistoryPoller

Struct HistoryPoller 

Source
pub struct HistoryPoller<C: HistoryApiClient> { /* private fields */ }
Expand description

Polls GetDurableExecutionHistory and feeds results into OperationStorage.

The HistoryPoller periodically calls the history API, handles pagination within each poll cycle, and retries transient errors with exponential backoff.

Implementations§

Source§

impl<C: HistoryApiClient> HistoryPoller<C>

Source

pub fn new(api_client: C, arn: String, poll_interval: Duration) -> Self

Creates a new HistoryPoller.

§Arguments
  • api_client - The client used to call the history API
  • arn - The Durable Execution ARN identifying the execution to poll
  • poll_interval - Duration to wait between page requests within a poll cycle
Source

pub async fn poll_once(&mut self) -> Result<PollResult, TestError>

Executes one poll cycle, exhausting all pages via pagination.

Starting from self.last_marker, this method calls the history API and follows next_marker pagination tokens until no more pages remain. Between each page request, it waits poll_interval to avoid throttling.

After the cycle completes, self.last_marker is updated to the last page’s next_marker so the next poll cycle starts where this one left off.

§Returns

A PollResult containing all operations and events aggregated across all pages, plus any terminal state detected during the cycle.

Auto Trait Implementations§

§

impl<C> Freeze for HistoryPoller<C>
where C: Freeze,

§

impl<C> RefUnwindSafe for HistoryPoller<C>
where C: RefUnwindSafe,

§

impl<C> Send for HistoryPoller<C>

§

impl<C> Sync for HistoryPoller<C>

§

impl<C> Unpin for HistoryPoller<C>
where C: Unpin,

§

impl<C> UnsafeUnpin for HistoryPoller<C>
where C: UnsafeUnpin,

§

impl<C> UnwindSafe for HistoryPoller<C>
where C: UnwindSafe,

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<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<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

Source§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
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> 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 = 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<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