View on
MetaCPAN is shutting down
For details read Perl NOC. After June 25th this page will redirect to
Daisuke Murase > AnyEvent-Gearman > AnyEvent::Gearman::Worker



Annotate this POD


New  1
Open  4
View/Report Bugs
Source   Latest Release: AnyEvent-Gearman-0.10


AnyEvent::Gearman::Worker - Gearman worker for AnyEvent application


    use AnyEvent::Gearman::Worker;
    # create gearman worker
    my $worker = AnyEvent::Gearman::Worker->new(
        job_servers => ['', ''],
    # add worker function
    $worker->register_function( reverse => sub {
        my $job = shift;
        my $res = reverse $job->workload;


This is Gearman worker module for AnyEvent applications.



Create gearman worker object.

    my $worker = AnyEvent::Gearman::Worker->new(
        job_servers => ['', ''],

Options are:

job_servers => 'ArrayRef'

List of gearman servers. 'host:port' or just 'host' formats are allowed. In latter case, gearman default port 4730 will be used.

You should set at least one job_server.

register_function( $function_name, $subref )

Register worker function.

    $worker->register_function( reverse => sub {
        my $job = shift;
        my $res = reverse $job->workload;

$function_name is function name string to register.

$subref is worker CodeRef that will be executed when the worker received a request for this function. And it will be passed a AnyEvent::Gearman::Job object representing the job that has been received by the worker.

NOTE: Unlike Gearman::Worker, this module ignore $subref's return value. So you should call either $job->complete or $job->fail at least.

This is because this module stands AnyEvent's asynchronous way, and this way more flexible in AnyEvent world.

For example:

    $worker->register_function( reverse => sub {
        my $job = shift;

        my $t; $t = AnyEvent->timer(
            after => 10,
            cb    => sub {
                undef $t;

This is simplest and meaningless codes but you can write worker process with AnyEvent way. This is asynchronous worker.

unregister_function( $function_name )

Unregister worker function, notifying to server that this worker no longer handle $function_name.


Daisuke Murase <>

Pedro Melo <>


Copyright (c) 2009 by KAYAC Inc.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the LICENSE file included with this module.

syntax highlighting: