Merge branch 'devel' of h1dev:/srv/APKPM/
[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 our $VERSION = '0.00';
10
11 with 'APKPM::Gearman';
12 with 'APKPM::Gearman::Client';
13
14 sub prefix { '' }
15
16 sub process_name {
17         my ( $self, $orig, $job_name ) = @_;
18         warn "# process_name $orig $job_name\n";
19         return "$orig ($job_name)";
20 }
21
22 sub search : Job : Encode(e_json) : MinProcesses(0) {
23         my ( $self, $job, $workload ) = @_;
24         warn "# search $job ", dump($workload);
25
26         my $res = { workload => $workload };
27
28         my $taskset = $self->gc->new_task_set;
29         $taskset->add_task('LDAP_search', $workload, {
30                 on_complete => sub { $res->{ldap} = $self->d_json( ${$_[0]} ) }
31         });
32         $taskset->add_task('CRM_search', $workload, {
33                 on_complete => sub { $res->{crm} = $self->d_json( ${$_[0]} ) }
34         });
35         warn "# wait";
36         $taskset->wait;
37         return $res;
38 }
39
40
41 1;