Skip to content

johnewart/gearman-java

Repository files navigation

Gearman Java Implementation

Test

Build Status

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:

  1. Download the latest pre-built SNAPSHOT release from the Sonatype snapshots repository
  2. Run java -jar gearman-server-VERSION.jar
  3. 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

Web dashboard

All Queues

All Queues

Per-Queue Status

Queue overview

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.

About

Java Gearman client and Netty-based server with multi-backend support (currently memory, Redis and PostgreSQL). More features coming including clustering support

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •