Job-Runner is a crontab like tool, with a nice web-frontend for
administration and (live) monitoring the current status.
- Schedule recurring jobs
- Chaining of jobs
- Load-balance workers by putting them in a pool
- Schedule jobs to run on all workers within a pool
- Live dashboard (with option to kill runs and ad-hoc scheduling)
- Multiple projects and per-project permission management
The whole project consists of three separate components (and repositories):
- Job-Runner: provides the REST interface, admin interface and (live)
dashboard. As well this component provides a long-running process
(manage.py broadcast_queue) to broadcast messages (over ZeroMQ) to the
workers and a long-running process to alert when workers are unresponsive
(manage.py health_check). See: https://github.com/spilgames/job-runner
- Job-Runner Worker: the process that is responsible for executing the job.
It subscribes to (ZeroMQ) messages coming from broadcast_queue, send data
back over the REST interface and publishes events to the
Job-Runner WebSocket Server.
You can run as many workers as you like, as long as every worker has it’s own
API key (eg: when you want to run jobs on multiple servers or under different
usernames on the same server). API keys can be created in the Job-Runner
- Job-Runner WebSocket Server: will subscribe to Job-Runner Worker events
and re-broadcast them to WebSocket connections coming from the Job-Runner
dashboard. This makes it possible to add realtime monitoring to the