API

Julia entry points when you embed DistSSHQueue. Day-to-day work stays on the CLI (julia --project=. -m DistSSHQueue …); see Home. The longer guide is the DistSSHKit manual. REPL help also works (?DistSSHQueue.submit!).

Submitters using DistSSHQueue. Queue-host code using DistSSHKit. Job files for go / ride still do not call DistSSHKit.

Prefer the CLI. From a client: qhost:HOST on the command line (not --hosts). DISTSSHQUEUE_HOST alone does not hop. CLI submit uses follow_config; library submit! uses Queue(; allowed=…) unless follow_config=true. Config: ~/.distsshqueue/config.toml.

using DistSSHQueue

q = Queue(; store=default_store_path(), follow_config=true)
id = submit!(q, "SCRIPT.jl", "child:host1:4"; kind=:go)
cancel!(q, id)
serve!(q)

Types

DistSSHQueue.DistSSHQueue — Module

DistSSHQueue — FIFO serve for DistSSHKit (go / ride / drive).

Package entry: exports, includes, main (@main on Julia 1.13+). FIFO: src/DistSSHQueue/. Client CLI: src/client/. Queue host CLI: src/qhost/. serve runs DistSSHRun execute!(...; detached=true) for kinds in KIT_EXECUTE_KINDS. --project=<queue-env> loads this package; the Kit project is job_project(). Autoserve uses the Julia and --project= from the enable unit when that file exists. Config: ~/.distsshqueue/config.toml.

Concept: docs.

source
DistSSHQueue.Queue — Type

FIFO table: one DistSSHKit job at a time. Placement tokens are Kit's, not a Queue ceiling.

source
DistSSHQueue.Job — Type

One table row. hosts are DistSSHKit placement tokens (parent[:N] / child:NAME[:N]). kwargs is an opaque bag for DistSSHRun execute! (project is the Kit project).

source

Job persists the artifact-related fields used by cancel and fetch. Their ownership and fallback order are described in Artifacts and paths.

Enqueue and cancel

DistSSHQueue.submit! — Function

Enqueue. kind is a DistSSHRun execute! kind in KIT_EXECUTE_KINDS (:go, :ride, :drive).

hosts must be DistSSHKit 0.4 placement tokens (parent[:N] / child:NAME[:N]). Missing project uses job_project() (cwd / DISTRIBUTED_PROJECT_ROOT), not the serve env (enable --queue-env / Julia --project= that loaded Queue). Same verb as CLI submit.

q.allowed is the inventory (Queue(; allowed=…)), names plus optional max :N. It does not read config.toml. CLI submit uses Queue(; follow_config=true) so each enqueue re-reads hosts without restarting serve. step! does not drop :queued rows when a name is later removed, and does not stop a Kit job that is already :running.

source
DistSSHQueue.cancel! — Function

Cancel :queued, or :running via DistSSHKit terminate_run! when the Kit sidecar dir is known.

source

Table

serve

DistSSHQueue.serve! — Function

Load store (stale :running → :failed), then step! until interrupt. Ctrl-C stops serve, not Kit.

A second serve on the same store prints Already running and returns.

source
DistSSHQueue.serve — Function
serve(; store=default_store_path(), interval=0.2) -> Nothing

Run serve! on store. Ctrl-C stops this process, not a job that is already running. The CLI rejects a non-finite --interval. interval == 0 still runs and warns once; a negative finite value warns once, then sleep fails.

source

Paths

DistSSHQueue.job_project — Function

Kit project: DISTRIBUTED_PROJECT_ROOT, else the Project.toml above cwd, else cwd.

Not the Julia --project= that loaded DistSSHQueue.

source