GearmanWorker::addFunction

Register and add callback function

&reftitle.description; public `bool` `GearmanWorker::addFunction` `string` `function_name` `callable` `function` `mixed` `context`&null; `int` `timeout` 0

Registers a function name with the job server and specifies a callback corresponding to that function. Optionally specify extra application context data to be used when the callback is called and a timeout.

&reftitle.parameters;

`function_name`

- The name of a function to register with the job server

`function`

- A callback that gets called when a job for the registered function name is submitted

`context`

- A reference to arbitrary application context data that can be modified by the worker function

`timeout`

- An interval of time in seconds

&reftitle.returnvalues;

&return.success;

&reftitle.examples;

### Simple worker making use of extra application context data

    <?php

    # get a gearman worker
    $worker= new GearmanWorker();

    # add the default server (localhost)
    $worker->addServer();

    # define a variable to hold application data
    $count= 0;

    # add the "reverse" function
    $worker->addFunction("reverse", "reverse_cb", $count);

    # start the worker
    while ($worker->work());

    function reverse_cb($job, &$count)
    {
      $count++;
      return "$count: " . strrev($job->workload());
    }

    ?>

Running a client that submits two jobs for the reverse function would have output similar to the following:

    1: olleh
    2: dlrow

&reftitle.seealso;

- `GearmanClient::do`