Skip to content

πŸ“‘ Background worker service that orchestrates repository scanning and persists test data using asynq queues.

License

Notifications You must be signed in to change notification settings

specvital/worker

Repository files navigation

specvital worker

Background job processing service for SpecVital platform.

Architecture

Clean Architecture with separate entry points for Railway deployment:

src/cmd/
β”œβ”€β”€ worker/      # River worker - queue processing (Railway service #1)
β”œβ”€β”€ scheduler/   # Cron scheduler - periodic jobs (Railway service #2)
β”œβ”€β”€ enqueue/     # CLI tool for manual task enqueue

Build

# Build all binaries
just build

# Build specific target
just build worker
just build scheduler
just build enqueue

# Output: bin/worker, bin/scheduler, bin/enqueue

Development

# Run worker locally with hot reload
just run local

# Run scheduler locally
just run-scheduler local

# Run tests
just test unit
just test integration
just test all

Environment Variables

  • DATABASE_URL: PostgreSQL connection string (also used for river job queue)

Railway Deployment

Deploy as two separate services:

  • Worker: bin/worker - processes analysis tasks from queue (scalable)
  • Scheduler: bin/scheduler - runs periodic cron jobs (single instance)