Polish pass hardening the queue and closing plan gaps. - Task state machine gains `running`: the first heartbeat moves a task from leased to running (migrations 0006/0007 add the enum value and extend the lease-integrity check). verifyLease, ExpireLease, the reaper SQL, and job progress all treat leased and running alike. - Worker liveness: a heartbeat from a registered worker (UUID worker_id) bumps its last_heartbeat_at online; a second background reaper marks workers offline after WORKER_OFFLINE_AFTER of silence (RunReaper generalized to RunPeriodic). - Request-size limits: JSON bodies capped at 1 MiB; dataset/artifact uploads capped at MAX_UPLOAD_BYTES (default 1 GiB) via http.MaxBytesReader. - Tests cover the running transition, liveness + offline reaper (unit over memstore and integration over Postgres).
29 lines
996 B
Bash
29 lines
996 B
Bash
# Copy to .env and adjust. All settings are read from the environment.
|
|
|
|
COORDINATOR_ADDR=:8080
|
|
DATABASE_URL=postgres://scimesh:scimesh@localhost:5432/scimesh?sslmode=disable
|
|
|
|
# Shared bearer token every worker must present. Leave empty to disable auth (dev only).
|
|
WORKER_AUTH_TOKEN=change-me
|
|
|
|
# Logging. LOG_LEVEL: debug|info|warn|error. LOG_FILE empty = stdout only;
|
|
# set a path to also write a size-rotated file (kept across restarts).
|
|
LOG_LEVEL=info
|
|
# LOG_FILE=./logs/coordinator.log
|
|
|
|
# Directory where artifact bytes are stored.
|
|
COORDINATOR_STORAGE_DIR=./data
|
|
# Upper bound on an uploaded dataset or artifact body (bytes). Default 1 GiB.
|
|
MAX_UPLOAD_BYTES=1073741824
|
|
|
|
# Optional tuning (defaults shown).
|
|
DB_MAX_CONNS=10
|
|
# How long to keep retrying the initial DB connection while Postgres boots.
|
|
DB_CONNECT_TIMEOUT=30s
|
|
REQUEST_TIMEOUT=15s
|
|
LEASE_DURATION=2m
|
|
DEFAULT_MAX_ATTEMPTS=3
|
|
REAPER_INTERVAL=30s
|
|
# A worker silent longer than this is marked offline by the reaper.
|
|
WORKER_OFFLINE_AFTER=1m
|