pub struct TaskSpec { /* private fields */ }Expand description
Desired state specification.
TaskSpec describes what should be run and how it should be managed by the runtime.
Fields cover:
- logical grouping (
slot) - execution backend (
kind) - concurrency control (
admission) - lifecycle policies (
timeout,restart,backoff)
§Also
TaskSpecBuildervalidated builder (viaTaskSpec::builder).TaskKindexecution backend variants.RestartPolicy/BackoffPolicylifecycle policies.AdmissionPolicyduplicate handling.RunnerSelectorlabel-based runner routing.
Implementations§
Source§impl TaskSpec
impl TaskSpec
Sourcepub fn restart(&self) -> RestartPolicy
pub fn restart(&self) -> RestartPolicy
Restart policy applied after completion or failure.
Sourcepub fn backoff(&self) -> &BackoffPolicy
pub fn backoff(&self) -> &BackoffPolicy
Backoff configuration between restart attempts.
Sourcepub fn admission(&self) -> AdmissionPolicy
pub fn admission(&self) -> AdmissionPolicy
Admission policy for handling slot conflicts.
Sourcepub fn max_retries(&self) -> u32
pub fn max_retries(&self) -> u32
Maximum failure-driven retries per run (0 = unlimited, the default).
Counts only failure retries (the counter resets on success); when the budget is exhausted the supervisor stops restarting the task.
Sourcepub fn runner_selector(&self) -> Option<&RunnerSelector>
pub fn runner_selector(&self) -> Option<&RunnerSelector>
Label selector for runner routing (if present).
Source§impl TaskSpec
impl TaskSpec
Sourcepub fn builder(
slot: impl Into<Slot>,
kind: TaskKind,
timeout: impl Into<Timeout>,
) -> TaskSpecBuilder
pub fn builder( slot: impl Into<Slot>, kind: TaskKind, timeout: impl Into<Timeout>, ) -> TaskSpecBuilder
Create a TaskSpecBuilder with the three required fields.
use solti_model::{TaskSpec, TaskKind, SubprocessSpec, SubprocessMode, RestartPolicy};
let spec = TaskSpec::builder(
"my-slot",
TaskKind::Subprocess(SubprocessSpec {
mode: SubprocessMode::Command {
command: "echo".into(),
args: vec!["hello".into()],
},
env: Default::default(),
cwd: None,
fail_on_non_zero: Default::default(),
}),
5_000u64,
)
.restart(RestartPolicy::OnFailure)
.build()
.expect("valid spec");Source§impl TaskSpec
impl TaskSpec
Sourcepub fn with_runner_selector(self, sel: RunnerSelector) -> Self
pub fn with_runner_selector(self, sel: RunnerSelector) -> Self
Attach a runner selector used by the router (consuming builder-style).
Sourcepub fn with_admission(self, admission: AdmissionPolicy) -> Self
pub fn with_admission(self, admission: AdmissionPolicy) -> Self
Override the admission policy (consuming builder-style).
Used by the apply/upgrade path to force AdmissionPolicy::Replace regardless of the spec’s declared admission.