3 use base qw(Gearman::Driver::Worker);
6 use Data::Dump qw(dump);
11 sub prefix { 'Store_' }
14 my ( $self, $orig, $job_name ) = @_;
15 warn "# process_name $orig $job_name\n";
16 return "$orig ($job_name)";
19 sub ADSL : Job : MinProcesses(1) : MaxProcesses(5) : Decode(d_json) {
20 my ( $self, $job, $workload ) = @_;
22 my $dbh = DBI->connect_cached('DBI:Pg:dbname=apkpm','','', {
27 my $h = $workload->{ADSL} || die "no ADSL in ",dump $workload;
28 foreach my $c ( qw(ip username) ) {
29 $h->{$c} = $workload->{$c} || die "no $c in ",dump $workload;
32 warn "# ADSL ", dump $h;
36 my $sql = 'INSERT INTO adsl (' . join(',',@c) . ') values (' . join(',', map { '?' } 0 .. $#c) . ')';
38 my $sth = $dbh->prepare($sql);
39 $sth->execute( map { $h->{$_} } @c );