pub enum NotReadyPolicy {
WaitWithTimeout {
timeout: Millis,
},
FailFast,
Requeue {
max_attempts: u32,
backoff: Millis,
},
}Expand description
What the almanac scheduler does when a precondition check fails.
The F9 design decision: WaitWithTimeout is the default. Fail-fast is
too brittle for the sim tier (containers may still be cold-starting);
requeue-with-no-ceiling can block the scheduler indefinitely. The
recommended timeout for sim is the container spinup budget (~5 s cold,
~1 s warm): set timeout to a few seconds, then let the retry cadence
handle transient glitches.
Variants§
WaitWithTimeout
Wait up to timeout for all preconditions to pass before aborting
the run. The run is skipped (not rescheduled); the next cadence tick
will retry. Suitable when targets occasionally lag at startup.
Fields
FailFast
Abort immediately if any precondition check fails. Suitable for integration-test harnesses where a missing dependency is always a hard error.
Requeue
Requeue with exponential backoff up to max_attempts times. After
exhaustion the run is marked failed. Suitable for cloud/HA where
transient dependency outages are expected.
Trait Implementations§
Source§impl Clone for NotReadyPolicy
impl Clone for NotReadyPolicy
Source§fn clone(&self) -> NotReadyPolicy
fn clone(&self) -> NotReadyPolicy
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 NotReadyPolicy
impl Debug for NotReadyPolicy
Source§impl Default for NotReadyPolicy
impl Default for NotReadyPolicy
Source§impl<'de> Deserialize<'de> for NotReadyPolicy
impl<'de> Deserialize<'de> for NotReadyPolicy
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for NotReadyPolicy
Source§impl PartialEq for NotReadyPolicy
impl PartialEq for NotReadyPolicy
Source§impl Serialize for NotReadyPolicy
impl Serialize for NotReadyPolicy
impl StructuralPartialEq for NotReadyPolicy
Source§impl TS for NotReadyPolicy
impl TS for NotReadyPolicy
Source§type WithoutGenerics = NotReadyPolicy
type WithoutGenerics = NotReadyPolicy
WithoutGenerics should just be Self.
If the type does have generic parameters, then all generic parameters must be replaced with
a dummy type, e.g ts_rs::Dummy or (). The only requirement for these dummy types is that
EXPORT_TO must be None. Read moreSource§type OptionInnerType = NotReadyPolicy
type OptionInnerType = NotReadyPolicy
std::option::Option<T>, then this associated type is set to T.
All other implementations of TS should set this type to Self instead.Source§fn docs() -> Option<String>
fn docs() -> Option<String>
TS is derived, docs are
automatically read from your doc comments or #[doc = ".."] attributesSource§fn decl_concrete(cfg: &Config) -> String
fn decl_concrete(cfg: &Config) -> String
TS::decl().
If this type is not generic, then this function is equivalent to TS::decl().Source§fn decl(cfg: &Config) -> String
fn decl(cfg: &Config) -> String
type User = { user_id: number, ... }.
This function will panic if the type has no declaration. Read moreSource§fn inline(cfg: &Config) -> String
fn inline(cfg: &Config) -> String
{ user_id: number }.
This function will panic if the type cannot be inlined.Source§fn inline_flattened(cfg: &Config) -> String
fn inline_flattened(cfg: &Config) -> String
Source§fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn output_path() -> Option<PathBuf>
fn output_path() -> Option<PathBuf>
T should be exported, relative to the output directory.
The returned path does not include any base directory. Read moreSource§fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn dependencies(cfg: &Config) -> Vec<Dependency>where
Self: 'static,
fn dependencies(cfg: &Config) -> Vec<Dependency>where
Self: 'static,
Source§fn export(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
fn export(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
TS::export_all. Read moreSource§fn export_all(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
fn export_all(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
TS::export. Read moreSource§fn export_to_string(cfg: &Config) -> Result<String, ExportError>where
Self: 'static,
fn export_to_string(cfg: &Config) -> Result<String, ExportError>where
Self: 'static,
Auto Trait Implementations§
impl Freeze for NotReadyPolicy
impl RefUnwindSafe for NotReadyPolicy
impl Send for NotReadyPolicy
impl Sync for NotReadyPolicy
impl Unpin for NotReadyPolicy
impl UnsafeUnpin for NotReadyPolicy
impl UnwindSafe for NotReadyPolicy
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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.