This is a simple, file-backed job queue server written in Go. Each job runs as a separate OS-level process. Useful for wrapping command-line tools like model runners, converters, or custom scripts.
- Jobs are executed as child processes
- Each job logs
stderr
and storesstdout
as the final result - Persistent metadata and logs saved to the filesystem
- Webhook support to notify external services on job completion
- REST API for job submission, status tracking, result fetching, and cancellation
make build
./processjobqueue
Or run directly:
make run
curl -X POST http://localhost:8080/jobs \
-H 'Content-Type: application/json' \
-d '{
"args": ["echo", "Hello, world!"],
"mime_type": "text/plain",
"webhook": "https://webhook.site/your-id"
}'
curl http://localhost:8080/jobs/<job-id>/status
curl http://localhost:8080/jobs/<job-id>/result
curl -X PUT http://localhost:8080/jobs/<job-id>/cancel
make docker-build
make docker-run
Mounts the jobs/
folder for persistent storage and serves the API on port 8080
.
Each job is stored in:
jobs/<job-id>/
├── meta.json ← job status + metadata
├── stdout.txt ← final output
└── stderr.txt ← logs (live updates)
- Go 1.21+
- (Optional) Docker for containerized deployment
- Retry + sign webhooks
- Job priorities or delayed execution
- Streaming logs over SSE