pub struct RemoteCluster {
pub slots: Vec<RemoteSlot>,
pub job_timeout_ms: u64,
pub max_attempts: u32,
pub connect_timeout_ms: u64,
}Expand description
SSH worker pool for pmap_on. The dispatcher spawns one persistent ssh process per slot,
performs HELLO + SESSION_INIT once, then streams JOB frames over the same stdin/stdout.
Tunables:
job_timeout_ms— per-job wall-clock budget. A slot that exceeds this is killed and the job is re-enqueued (counted against the retry budget).max_attempts— total attempts (initial + retries) per job before it is failed.connect_timeout_ms—ssh -o ConnectTimeout=N-equivalent for the initial handshake.
Fields§
§slots: Vec<RemoteSlot>§job_timeout_ms: u64§max_attempts: u32§connect_timeout_ms: u64Implementations§
Source§impl RemoteCluster
impl RemoteCluster
pub const DEFAULT_JOB_TIMEOUT_MS: u64 = 60_000
pub const DEFAULT_MAX_ATTEMPTS: u32 = 3
pub const DEFAULT_CONNECT_TIMEOUT_MS: u64 = 10_000
Sourcepub fn from_list_args(items: &[PerlValue]) -> Result<Self, String>
pub fn from_list_args(items: &[PerlValue]) -> Result<Self, String>
Parse a list of cluster spec values into a RemoteCluster. Accepted forms (any may
appear in the same call):
"host"— 1 slot, defaultstrykepath"host:N"— N slots"host:N:/path/to/stryke"— N slots, custom remotestryke"user@host:N"— ssh user override (kept verbatim inhost)- hashref
{ host => "h", slots => N, stryke => "/usr/local/bin/stryke" } - trailing hashref
{ timeout => 30, retries => 2, connect_timeout => 5 }— global tunables that apply to the whole cluster (must be the last argument; consumed only when its keys are all known tunable names so it cannot be confused with a slot)
Backwards compatible with the basic v1 "host:N" syntax.
Trait Implementations§
Source§impl Clone for RemoteCluster
impl Clone for RemoteCluster
Source§fn clone(&self) -> RemoteCluster
fn clone(&self) -> RemoteCluster
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for RemoteCluster
impl RefUnwindSafe for RemoteCluster
impl Send for RemoteCluster
impl Sync for RemoteCluster
impl Unpin for RemoteCluster
impl UnsafeUnpin for RemoteCluster
impl UnwindSafe for RemoteCluster
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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 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>
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 moreSource§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.Source§impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
Source§fn to_owned_obj(&self, data: FontData<'_>) -> U
fn to_owned_obj(&self, data: FontData<'_>) -> U
Convert this type into
T, using the provided data to resolve any offsets.