gearman-java
gearman-java copied to clipboard
Java Gearman client and Netty-based server with multi-backend support (currently memory, Redis and PostgreSQL). More features coming including clustering support
Gearman Java Implementation
Test
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
Getting Started
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
Web Interface
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:
Main Dashboard
All Queues
Per-Queue Status
Contributing
Feel free to fork and submit pull requests, or test and submit bug reports.
Author
John Ewart http://johnewart.net
Contributors
Some tiny portions of this project leverage code from the java-gearman-service project.