An implementation of the gearman protocol server, basic client, and soon-to-be worker in Java. Features include:
- Pluggable persistent storage mechanism currently supporting:
- PostgreSQL
- Redis
- Memory-only
- Web-based UI dashboard
- Metrics using java metrics
- Multi-threaded server using Netty for high-performance network I/O
Quick start:
- Download the latest version pre-built from my Maven repository
- Run java -jar gearman-server-0.6.0.jar
- This will default to port 4730 and memory-only persistence, with snapshotting and the web interface listening on port 8080
If you want to use more advanced features, you can see what command-line options are available by passing -h or --help on the command line. Currently you can toggle / configure storage engine, port, HTTP port and debugging level.
Some of the issues that I've run into in the past have been related to visibility into job queues. To address this, I've added a web management console that lets you see the state of the system. For small installations this is a nice option because it doesn't require you to setup or have any external monitoring systems. Some screenshots here:
Feel free to fork and submit pull requests, or test and submit bug reports.
John Ewart @soysamurai, http://johnewart.net
Some small portions of this leverage code from the java-gearman-service project, as this started because I wanted to add persistence to that service but decided to write it from (mostly) scratch.