![]() |
![]()
| ![]() |
![]()
NAMEAnyEvent::Gearman::Worker - Gearman worker for AnyEvent applicationSYNOPSISuse 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); }); DESCRIPTIONThis is Gearman worker module for AnyEvent applications.METHODSnew(%options)Create gearman worker object.my $worker = AnyEvent::Gearman::Worker->new( job_servers => ['127.0.0.1', '192.168.0.1:123'], ); Options are:
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.AUTHORDaisuke Murase <typester@cpan.org>Pedro Melo <melo@cpan.org> COPYRIGHT AND LICENSECopyright (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.
|