NAME
AnyEvent::Gearman::Client - Gearman client for AnyEvent application
SYNOPSIS
use AnyEvent::Gearman::Client;
# create greaman client
my $gearman = AnyEvent::Gearman::Client->new(
job_servers => ['127.0.0.1', '192.168.0.1:123'],
);
# start job
$gearman->add_task(
$function => $workload,
on_complete => sub {
my $res = $_[1];
},
on_fail => sub {
# job failed
},
);
DESCRIPTION
This is Gearman client module for AnyEvent applications.
SEE ALSO
Gearman::Client::Async, this module provides same functionality for Danga::Socket applications.
METHODS
new(%options)
Create gearman client object.
my $gearman = AnyEvent::Gearman::Client->new(
job_servers => ['127.0.0.1', '192.168.0.1:123'],
);
Available 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.
add_task($function, $workload, %callbacks)
Start new job and wait results in %callbacks
$gearman->add_task(
$function => $workload,
on_complete => sub {
my $result = $_[1],
},
on_fail => sub {
# job failled
},
);
$function
is a worker function name, and $workload
is a data that will be passed to worker.
%callbacks
is set of callbacks called by job events. Available callbacks are:
- on_complete => $cb->($self, $result)
-
Called when the job is completed.
$result
is some results data which is set by$job->complete($result)
in worker. - on_fail => $cb->($self, $reason)
-
Called when the job is failed.
$reason
is empty if its threw by worker. I don't know why but gearman spec say so. Considering to useon_warning
below for some failing notify. - on_warning => $cb->($self, $warning)
-
Called when
$job->warning($warning)
called in worker. - on_data => $cb->($self, $data)
-
Called when
$job->data($data)
called in worker. - on_status => $cb->($self, $numerator, $denominator)
-
Called when
$job->status($numerator, $denominator)
called in worker
You should to set on_complete
and on_fail
at least.
AUTHOR
Daisuke Murase <typester@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.