Gearman::XS client implementation
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sat, 10 Dec 2011 17:15:39 +0000 (18:15 +0100)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sat, 10 Dec 2011 17:15:39 +0000 (18:15 +0100)
lib/CloudStore/Gearman.pm [new file with mode: 0644]
t/Gearman.t [new file with mode: 0755]

diff --git a/lib/CloudStore/Gearman.pm b/lib/CloudStore/Gearman.pm
new file mode 100644 (file)
index 0000000..6e2cd90
--- /dev/null
@@ -0,0 +1,28 @@
+package CloudStore::Gearman;
+use warnings;
+use strict;
+
+use Gearman::XS qw(:constants);
+use Gearman::XS::Client;
+
+use Gearman::Client;
+use Data::Dump qw(dump);
+
+sub gearman {
+       my $gearman = Gearman::XS::Client->new;
+       $gearman->add_server('127.0.0.1' => 4730);
+       return $gearman;
+}
+
+sub gearman_do {
+       my $self = shift @_;
+       my $func = shift @_;
+       my $body = join(' ', @_) . "\n";
+       warn "## gearman_do $func [$body]\n";
+
+       my ($ret,$result) = $self->gearman->do( $func => $body );
+       warn "##>> ",dump($ret, $result),$/;
+       return $result;
+}
+
+1;
diff --git a/t/Gearman.t b/t/Gearman.t
new file mode 100755 (executable)
index 0000000..d73bb89
--- /dev/null
@@ -0,0 +1,14 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+
+use Test::More tests => 2;
+use Data::Dump qw(dump);
+
+use lib 'lib';
+
+use_ok 'CloudStore::Gearman';
+
+ok my $o = CloudStore::Gearman->gearman_do( 'narada_s1_quota_get' => 2001 );
+diag dump $o;
+