Gearman is a distributed job queuing system designed to distribute appropriate
computer tasks to multiple computers, so large tasks can be done more quickly.
Horizontal Scaling
Redundant Jenkins
Gearman Features
Gearman plugin reloads on jenkins restart: meaning that when jenkins restarts the gearman worker threads are automatically restarted and reconnect to a gearman server.
High availability(ish). When one master goes down the other master(s) will continue to execute builds however the in flight jobs on the down master will be lost.
Horizontal scalability. Just continue to add more jenkins masters to distribute the load between masters
Slaves are always shared between masters. Offline or disconnect a slave will un-share it
Gearman jobs can start a jenkins build
Gearman jobs can stop or abort a jenkins build
Gearman jobs can change a build description
Gearman jobs can pass in parameters to jenkins builds
Gearman jobs can automatically set a slave to offline after running a build
Gearman plugin is aware of Jenkins project status: meaning that gearman will register/unregister projects when the project is enabled or disabled.
Gearman plugin is aware of slave status: meaning that gearman will register/unregister slaves when a slave is set online/offline and connected/disconnected.