pub struct JobExecution { /* private fields */ }Expand description
One launch or restart attempt for a JobInstance.
Implementations§
Source§impl JobExecution
impl JobExecution
Sourcepub const fn new(
id: JobExecutionId,
job_instance_id: JobInstanceId,
metadata: ExecutionMetadata,
) -> JobExecution
pub const fn new( id: JobExecutionId, job_instance_id: JobInstanceId, metadata: ExecutionMetadata, ) -> JobExecution
Constructs a job execution record from validated metadata.
Sourcepub const fn from_snapshot(
id: JobExecutionId,
job_instance_id: JobInstanceId,
metadata: ExecutionMetadata,
version: ExecutionVersion,
) -> JobExecution
pub const fn from_snapshot( id: JobExecutionId, job_instance_id: JobInstanceId, metadata: ExecutionMetadata, version: ExecutionVersion, ) -> JobExecution
Reconstructs a job execution snapshot with its optimistic version.
Sourcepub const fn id(&self) -> JobExecutionId
pub const fn id(&self) -> JobExecutionId
Returns the attempt identifier.
Sourcepub const fn job_instance_id(&self) -> JobInstanceId
pub const fn job_instance_id(&self) -> JobInstanceId
Returns the logical instance identifier.
Sourcepub const fn metadata(&self) -> &ExecutionMetadata
pub const fn metadata(&self) -> &ExecutionMetadata
Borrows the execution metadata.
Sourcepub const fn version(&self) -> ExecutionVersion
pub const fn version(&self) -> ExecutionVersion
Returns the facade-owned optimistic-lock version.
Sourcepub fn transition(
&mut self,
expected_version: ExecutionVersion,
transition: LifecycleTransition,
) -> Result<ExecutionVersion, LifecycleError>
pub fn transition( &mut self, expected_version: ExecutionVersion, transition: LifecycleTransition, ) -> Result<ExecutionVersion, LifecycleError>
Applies one legal lifecycle transition using compare-and-swap semantics.
The transition never changes exit status. Restart requests from
STOPPED or FAILED return
LifecycleError::RestartRequiresNewAttempt.
§Errors
Returns a typed stale-version, illegal-transition, timestamp, failure, or version-exhaustion error without mutating this snapshot.
Sourcepub fn enrich_exit_status(
&mut self,
expected_version: ExecutionVersion,
exit_status: ExitStatus,
) -> Result<ExecutionVersion, LifecycleError>
pub fn enrich_exit_status( &mut self, expected_version: ExecutionVersion, exit_status: ExitStatus, ) -> Result<ExecutionVersion, LifecycleError>
Enriches flow/operator exit status without changing batch status.
§Errors
Returns LifecycleError::StaleVersion or
LifecycleError::VersionExhausted without mutating this snapshot.
Sourcepub fn new_restart_attempt(
&self,
expected_version: ExecutionVersion,
new_execution_id: JobExecutionId,
created_at: SystemTime,
) -> Result<JobExecution, LifecycleError>
pub fn new_restart_attempt( &self, expected_version: ExecutionVersion, new_execution_id: JobExecutionId, created_at: SystemTime, ) -> Result<JobExecution, LifecycleError>
Creates a fresh STARTING attempt for the same logical job instance.
The prior execution remains unchanged. Definition-level restart permission is a repository/launcher concern layered on top of this status policy.
§Errors
Returns a typed stale-version, non-restartable, or reused-ID error.
Trait Implementations§
Source§impl Clone for JobExecution
impl Clone for JobExecution
Source§fn clone(&self) -> JobExecution
fn clone(&self) -> JobExecution
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for JobExecution
impl Debug for JobExecution
impl Eq for JobExecution
Source§impl PartialEq for JobExecution
impl PartialEq for JobExecution
impl StructuralPartialEq for JobExecution
Auto Trait Implementations§
impl Freeze for JobExecution
impl RefUnwindSafe for JobExecution
impl Send for JobExecution
impl Sync for JobExecution
impl Unpin for JobExecution
impl UnsafeUnpin for JobExecution
impl UnwindSafe for JobExecution
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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