seelin / net_gearman

A PHP interface for Danga's Gearman

Home Page:http://pear.php.net/package/Net_Gearman

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Net_Gearman
About

Net_Gearman is a PEAR package for interfacing with Danga's Gearman. Gearman is a system to farm out work to other machines, dispatching function calls to machines that are better suited to do work, to do work in parallel, to load balance lots of function calls, or to call functions between languages.

Net_Gearman is currently in production at Yahoo! and Digg doing all sorts of offloaded near time processing.
Installation

   1. Install PEAR if it is not already installed on your system.
   2. Run pear install http://netgearman.googlecode.com/files/Net_Gearman-x.y.z.tgz (Replace x.y.z with the latest version from the featured download to the right). 

Examples
Client

<?php

require_once 'Net/Gearman/Client.php';

$client = new Net_Gearman_Client('localhost:7003');
$client->someBackgroundJob(array(
    'userid' => 5555,
    'action' => 'new-comment'
));

?>

Job

<?php

class Net_Gearman_Job_someBackgroundJob extends Net_Gearman_Job_Common
{
    public function run($args)
    {
        if (!isset($args['userid']) || !isset($args['action'])) {
            throw new Net_Gearman_Job_Exception('Invalid/Missing arguments');
        }

        // Insert a record or something based on the $args

        return array(); // Results are returned to Gearman, except for 
                        // background jobs like this one.
    }
}

?>

Worker

<?php

require_once 'Net/Gearman/Worker.php';

$worker = new Net_Gearman_Worker('localhost:7003');
$worker->addAbility('someBackgroundJob');
$worker->beginWork();

?>

About

A PHP interface for Danga's Gearman

http://pear.php.net/package/Net_Gearman


Languages

Language:PHP 100.0%