extract mac address
[APKPM.git] / lib / APKPM / Gearman / Client.pm
1 package APKPM::Gearman::Client;
2
3 use Moose::Role;
4
5 use Gearman::Client;
6 use JSON::XS;
7 use Data::Dump qw(dump);
8
9 requires 'server';
10
11 sub gc {
12         my $self = shift;
13         my $gc = Gearman::Client->new;
14         $gc->job_servers( $self->server || 'localhost:4730' );
15         warn "# Gearman server: ", dump( $gc->job_servers );
16         return $gc;
17 }
18
19 sub do_background {
20         my ( $self, $func, $args ) = @_;
21         warn "# do_background ", dump( $func, $args );
22         $self->gc->dispatch_background( $func, $args );
23 }
24
25 sub do_background_json {
26         my ( $self, $func, $args ) = @_;
27         warn "# do_background_json ", dump( $func, $args );
28         $self->gc->dispatch_background( $func, JSON::XS::encode_json($args) );
29 }
30
31 sub do {
32         my ( $self, $func, $args ) = @_;
33         warn "# do ",dump( $func,$args );
34         my $ret = $self->gc->do_task( $func, $args );
35         warn "## $func $args = ",dump($ret);
36         return JSON::XS::decode_json $$ret;
37 }
38
39 1;