An implementation of the gearman protocol server, client, and 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
- High-performance - on a single m3.2xlarge EC2 instance with 8 on-box Ruby clients it has achieved over 11,000 jobs per second with in-memory storage
Quick start:
- Download the latest pre-built SNAPSHOT release from the Sonatype snapshots repository
- Run java -jar gearman-server-VERSION.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, see the example config.yml files in the gearman-server sub-project
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 tiny portions of this project leverage code from the java-gearman-service project.