Skip to content

Instantly share code, notes, and snippets.

@chai2010
Forked from mnapoli/Gearman-Windows.md
Last active August 29, 2015 14:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chai2010/1d9aecab71c58d491362 to your computer and use it in GitHub Desktop.
Save chai2010/1d9aecab71c58d491362 to your computer and use it in GitHub Desktop.
Installing Gearman on windows

Gearman can be installed on Windows through cygwin.

Install Cygwin packages

Install cygwin packages (through setup.exe):

  • gcc
  • make
  • libuuid1-devel
  • libiconv
  • boost
  • libboost-devel
  • libmpfr4

Install libevent

Download and unpack libevent 1.4 sources (to a directory without spaces, e.g. C:\cygwin\tmp), then run:

cd libevent-1.4.14b-stable
./configure
make
make install

Now libevent should be installed on /usr/local/lib, but this path is not in the library path and GCC will not find it automatically.

You can copy the generated libraries to /usr/lib:

cp /usr/local/lib/libevent* /usr/lib

(this is not the cleanest solution, you are welcome to propose an alternative)

Install Gearman

Download gearmand C server sources (to a directory without spaces, e.g. C:\cygwin\tmp). Attention, because of this bug you can' install a version higher than V0.14. Here is a direct link to download V0.14.

Run:

cd gearmand-0.14
./configure
make
make install

Now the server is installed and you can launch it from a cygwin terminal:

/usr/local/sbin/gearmand.exe

Or if you want it to be ultra verbose:

/usr/local/sbin/gearmand.exe -vvv

You can also start the process and detach it from the terminal:

gearmand -d

Test

Open 3 terminals.

In the 1st, start the Gearman server:

/usr/local/sbin/gearmand.exe

In the 2nd, start a worker:

gearman -w -f wc -- wc -l

In the 3rd, send a task to the Gearman server. It will be dispatched to the worker which will process it and return the result to the server, which will return it to you 3rd terminal.

gearman -f wc < /etc/passwd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment