Setting up Gearman

From Dreamwidth Notes
Jump to: navigation, search


An asynchronous job scheduling engine, of the type "do this somewhere else". Benefits: somewhere else, fast. Flaws: currently if it dies jobs are lost (apparently the team that manages it is working on that). Name is an anagram of "manager"; from LiveJournal days.


Install the server:

sudo apt-get install gearman-server

And also edit /etc/default/gearman-server so that ENABLED is true.

Run the daemon:

sudo /etc/init.d/gearman-server start

Might want to add it to startup.

For Dreamhacks

If you don't have root, you will need to install the Gearman server locally instead of using the above instructions.

mkdir -p extlib
cpanm -n -Lextlib Gearman::Server

Then to run the server:

perl -Iextlib/lib/perl5 extlib/bin/gearmand --port=[choose a port number] &

Ask Mark if you need help figuring out which port number you should use for your Gearman server.

Using Gearman with DW

Once you have Gearman running, you need to add this to your configs in the LJ section somewhere:

@GEARMAN_SERVERS = ('localhost:7003');

Port 7003 is the default port for a gearman server running as root; dreamhack users should instead use their port number as chosen above.

When looking for examples of gearman workers in existing code, try:

egrep -i gearman bin/worker/*