API
Julia entry points when you embed DistSSHKitQueue. Day-to-day work stays on the CLI (julia --project=. -m DistSSHKitQueue …); see Introduction, First Steps, and the User Guide. REPL help also works (?DistSSHKitQueue.submit!).
Submitters using DistSSHKitQueue. Queue-host code using DistSSHKit. Job files for Kit go still do not import DistSSHKit.
Prefer the CLI. From a client: qhost:HOST (not --hosts). Default hop: DISTSSHKITQUEUE_HOST. CLI submit uses follow_config; library submit! uses Queue(; allowed=…) unless follow_config=true. Config: ~/.distsshkitqueue/config.toml.
using DistSSHKitQueue
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
DistSSHKitQueue.DistSSHKitQueue — Module
DistSSHKitQueue — FIFO waiter for DistSSHKit (go / drive).
Package entry: exports, includes, main (@main on Julia 1.12+). FIFO: src/DistSSHKitQueue/. Client CLI: src/client/. Queue host CLI: src/qhost/. Waiter runs DistSSHKit execute!(...; detached=true). --project=<queue-env> loads this package; the job tree is job_project(). Config: ~/.distsshkitqueue/config.toml.
Concept: docs.
DistSSHKitQueue.Queue — Type
FIFO table: one DistSSHKit job at a time. Placement tokens are Kit's, not a Queue ceiling.
DistSSHKitQueue.Job — Type
One table row. hosts are DistSSHKit 0.4 tokens (parent[:N] / child:NAME[:N]). kwargs is an opaque bag for DistSSHKit execute! (project is the job tree).
Enqueue and cancel
DistSSHKitQueue.submit! — Function
Enqueue. kind=:go or :drive (DistSSHKit execute!).
hosts must be DistSSHKit 0.4 placement tokens (parent[:N] / child:NAME[:N]). Missing project uses job_project() (cwd / DISTRIBUTED_PROJECT_ROOT), not the waiter 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.
DistSSHKitQueue.cancel! — Function
Cancel :queued, or :running via DistSSHKit terminate_run! when the Kit output dir is known.
Table
DistSSHKitQueue.jobs — Function
Copy of the table.
DistSSHKitQueue.job — Function
Copy of one row.
DistSSHKitQueue.load! — Function
Load store (stale :running → :failed).
DistSSHKitQueue.step! — Function
Start the FIFO head if nothing is :running. At most one Kit job.
Waiter
DistSSHKitQueue.serve! — Function
Load store (stale :running → :failed), then step! until interrupt. Ctrl-C stops the waiter, not Kit.
A second serve on the same store prints Already running and returns.
Paths
DistSSHKitQueue.job_project — Function
Kit job tree: DISTRIBUTED_PROJECT_ROOT, else the Project.toml above cwd, else cwd.
Not the Julia --project= that loaded DistSSHKitQueue.
default_store_path() is ~/.distsshkitqueue/jobs.toml. The waiter calls DistSSHKit execute!(…; detached=true, job_id=…).