75. Client example
#!/usr/bin/perl
use v5.10;
use strict;
use Gearman::Client;
my $client = new Gearman::Client;
$client->job_servers('127.0.0.1:4730');
for (1..10000) {
my $result_ref = $client->do_task('echo', 10);
say $$result_ref;
}
77. Asynchronous client example
use v5.10;
use strict;
use Gearman::Client;
my $client = new Gearman::Client;
$client->job_servers('example.com:4730');
my $tasks = $client->new_task_set;
$tasks->add_task(
'echo' => 10,
{
on_complete => &completed
}
);
$tasks->wait;
sub completed {
my $result = shift;
say $$result;
}
78. Asynchronous client example
my $tasks = $client->new_task_set;
$tasks->add_task(
'echo' => 10,
{
on_complete => &completed
}
);
$tasks->wait;
Get task set placeholder
79. Asynchronous client example
my $tasks = $client->new_task_set;
$tasks->add_task(
'echo' => 10,
{
on_complete => &completed
}
);
$tasks->wait;
Place the task
80. Asynchronous client example
my $tasks = $client->new_task_set;
$tasks->add_task(
'echo' => 10,
{
on_complete => &completed
}
);
$tasks->wait;
and register callback method
81. Asynchronous client example
my $tasks = $client->new_task_set;
$tasks->add_task(
'echo' => 10,
{
on_complete => &completed
}
);
$tasks->wait;
Wait until the job is done
83. XS worker example
use v5.10;
use strict;
use Gearman::XS::Worker;
my $worker = new Gearman::XS::Worker;
$worker->add_server('127.0.0.1', 4730);
$worker->add_function('echo', 0, &echo, undef);
$worker->work() while 1;
sub echo {
my $job = shift;
return $job->workload() + 1;
}
84. XS client example
use v5.10;
use strict;
use Gearman::XS::Client;
my $client = new Gearman::XS::Client;
$client->add_server('127.0.0.1', 4730);
my ($ret, $result) = $client->do('echo', '15'); # arg as string!
say $result;
85. Async XS client example
use v5.10;
use strict;
use Gearman::XS::Client;
my $client = new Gearman::XS::Client;
$client->add_server('127.0.0.1', 4730);
my ($ret1, $task1) = $client->add_task('echo', '15');
my ($ret2, $task2) = $client->add_task('echo', '51');
$client->run_tasks();