Provided by: libanyevent-gearman-perl_0.10-2_all bug

NAME

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

SYNOPSIS

           use AnyEvent::Gearman::Worker;

           # create gearman worker
           my $worker = AnyEvent::Gearman::Worker->new(
               job_servers => ['127.0.0.1', '192.168.0.1:123'],
           );

           # add worker function
           $worker->register_function( reverse => sub {
               my $job = shift;
               my $res = reverse $job->workload;
               $job->complete($res);
           });

DESCRIPTION

       This is Gearman worker module for AnyEvent applications.

METHODS

   new(%options)
       Create gearman worker object.

           my $worker = AnyEvent::Gearman::Worker->new(
               job_servers => ['127.0.0.1', '192.168.0.1:123'],
           );

       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;
               $job->complete($res);
           });

       $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;
                       $job->complete('done!');
                   },
               );
           });

       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.

AUTHOR

       Daisuke Murase <typester@cpan.org>

       Pedro Melo <melo@cpan.org>

COPYRIGHT AND LICENSE

       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.