c112fb423cd1458f6de4fd57b483786740f948fb
[APKPM.git] / lib / APKPM.pm
1 package APKPM;
2
3 use base qw(Gearman::Driver::Worker);
4 use Moose;
5 use Time::HiRes;
6 use JSON::XS;
7 use Data::Dump qw(dump);
8
9 sub prefix { '' }
10
11 sub process_name {
12         my ( $self, $orig, $job_name ) = @_;
13         warn "# process_name $orig $job_name\n";
14         return "$orig ($job_name)";
15 }
16
17 our $nr = 0;
18
19 sub ping : Job : MinProcesses(1) : MaxProcesses(5) {
20         my ( $self, $job, $workload ) = @_;
21         warn "# ping $job $workload\n";
22         sleep 2; $nr++;
23         return "pong [$workload] $$ $nr";
24 }
25
26 sub inc_foo : Job : MinProcesses(1) : MaxProcesses(5) : Encode : Decode {
27         my ( $self, $job, $workload ) = @_;
28         warn "# inc_foo $job ", dump($workload);
29         $workload->{foo}++;
30         return $workload;
31 }
32
33 sub encode {
34         my ( $self, $result ) = @_;
35         return JSON::XS::encode_json($result);
36 }
37
38 sub decode {
39         my ( $self, $workload ) = @_;
40         return JSON::XS::decode_json($workload);
41 }
42
43 1;