Gearman

JAGGER has ablity to interconnect with gearman.

What is Gearman you can find on http://gearman.org/

Here is example instruction how to install gearman from source and add support into php.

libgearm

Go to https://launchpad.net/gearmand and download lates version of gearmand for example https://launchpad.net/gearmand/1.2/1.1.9/+download/gearmand-1.1.9.tar.gz released on 2013-08-02 and install it

php-gearman

We’re going to use pecl so before please make sure have installed php-pear.

pecl search  gearman

you should get listed gearman 1.1.1 (stable) 1.1.1 PHP wrapper to libgearman

pecl install  gearman

then enable gearman in one of php ini files (depends on distribution)

extension=gearman.so

Note

some distribution have seperated config for php (apache) and php (cli)

restart apache and check

<?php
  phpinfo();
?>

and/or

php -i|grep -i gearm

gearman-job-server

You need gearman-job-server server running to handle jobs. As gearman-job-server has no security profile please configure the service to listen on local interface.

example:

/etc/default/gearman-job-server

PARAMS="--listen=127.0.0.1"

/etc/init.d/gearman-job-server

#!/bin/sh

# Gearman server and library
# Copyright (C) 2008 Brian Aker, Eric Day
# All rights reserved.
#
# Use and distribution licensed under the BSD license.  See
# the COPYING file in this directory for full text.

### BEGIN INIT INFO
# Provides:          gearman-job-server
# Required-Start:    $network $remote_fs $syslog
# Required-Stop:     $network $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable gearman job server
### END INIT INFO

prefix=/usr/local
exec_prefix=${prefix}
NAME=gearmand
DAEMON=${exec_prefix}/sbin/gearmand
PIDDIR=/var/run/gearman
PIDFILE=${PIDDIR}/gearmand.pid
GEARMANUSER="gearman"
PARAMS=""


test -x ${DAEMON} || exit 0

. /lib/lsb/init-functions

test -f /etc/default/gearman-job-server && . /etc/default/gearman-job-server

start()
{
  log_daemon_msg "Starting Gearman Server" "gearmand"
  if ! test -d ${PIDDIR}
  then
    mkdir ${PIDDIR}
    chown ${GEARMANUSER} ${PIDDIR}
  fi
  if start-stop-daemon \
    --start \
    --exec $DAEMON \
    -- --pid-file=$PIDFILE \
       --user=$GEARMANUSER \
       --daemon \
       --log-file=/var/log/gearman-job-server/gearman.log \
       $PARAMS
  then
    log_end_msg 0
  else
    log_end_msg 1
    log_warning_msg "Please take a look at the syslog"
    exit 1
  fi
}


stop()
{
  log_daemon_msg "Stopping Gearman Server" "gearmand"
  if start-stop-daemon \
    --stop \
    --oknodo \
    --exec $DAEMON \
    --pidfile $PIDFILE
  then
    log_end_msg 0
  else
    log_end_msg 1
    exit 1
  fi
}

status()
{
    status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
}

case "$1" in

  start)
    start
  ;;

  stop)
    stop
  ;;

  status)
    status
  ;;

  restart|force-reload)
    stop
    start
  ;;


  *)
    echo "Usage: $0 {start|stop|restart|force-reload|status}"
  ;;

esac