OutlabsTaskq
Getting Started

CLI

migrate, verify, worker, auth, and taskq-bench.

Entry points from outlabs-taskq:

CommandPurpose
taskq migrate <dsn>Apply packaged migrations under an advisory lock
taskq verify <dsn>Read-only manifest drift check
taskq worker …Run a DB-direct or HTTP worker
taskq auth sync-permissions …Report/apply OutLabs IAM rows ([outlabs] required)
taskq-bench run <scenario> --dsn …Report-only benchmarks

Worker

Configure exactly one transport: --dsn or --http-base-url.

taskq worker \
  --dsn "$DATABASE_URL" \
  --registry myapp.tasks:registry \
  --queue mail \
  --queue courts \
  --environment development \
  --concurrency 4 \
  --batch 2

HTTP workers (no DB credentials):

taskq worker \
  --http-base-url https://api.example.com/taskq \
  --registry myapp.tasks:registry \
  --queue mail \
  --environment staging \
  --http-bearer-token "$TOKEN" \
  --no-listen

Most knobs also load from TASKQ_* environment variables via WorkerSettings. See Configuration.

HTTP workers cannot use PostgreSQL LISTEN. Production requires --allow-production (or TASKQ_ALLOW_PRODUCTION=true) when --environment production.

Auth provisioning

taskq auth sync-permissions \
  --dsn "$AUTH_DATABASE_URL" \
  --queue mail \
  --queue courts \
  --apply

Omit --apply for a dry-run report.