projects
/
cloudstore.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
remove json store left-overs
[cloudstore.git]
/
data-worker.pl
diff --git
a/data-worker.pl
b/data-worker.pl
index
af8a2bd
..
9d321a9
100755
(executable)
--- a/
data-worker.pl
+++ b/
data-worker.pl
@@
-6,30
+6,32
@@
use Data::Dump qw(dump);
use DBI;
use JSON::XS;
use DBI;
use JSON::XS;
-
my $log = sub
{
- my
$job = shift
;
+
sub insert
{
+ my
($table,$job) = @_
;
- my $json = decode_json $job->arg;
- warn "## log ",dump( $json );
+ my $hash = decode_json $job->arg;
+
+ print "insert $table ",dump($hash),$/;
my $dbh = DBI->connect_cached('DBI:Pg:dbname=cloudstore','','', {
RaiseError => 1,
AutoCommit => 1,
});
my $dbh = DBI->connect_cached('DBI:Pg:dbname=cloudstore','','', {
RaiseError => 1,
AutoCommit => 1,
});
- my @k = keys %$
json
;
+ my @k = keys %$
hash
;
- my $sql = sprintf 'INSERT INTO
log (%s) values (%s)'
,
+ my $sql = sprintf 'INSERT INTO
%s (%s) values (%s)', $table
,
join(',',@k), join(',', map { '?' } @k);
join(',',@k), join(',', map { '?' } @k);
+
warn "# $sql";
my $sth = $dbh->prepare($sql);
warn "# $sql";
my $sth = $dbh->prepare($sql);
- $sth->execute( map { $
json
->{$_} } @k );
+ $sth->execute( map { $
hash
->{$_} } @k );
};
use Gearman::Worker;
my $worker = Gearman::Worker->new;
$worker->job_servers('127.0.0.1:4730');
};
use Gearman::Worker;
my $worker = Gearman::Worker->new;
$worker->job_servers('127.0.0.1:4730');
-$worker->register_function(
log => $log
);
+$worker->register_function(
rsync_transfer => sub { insert 'rsync_transfer' => shift }
);
warn "$0 pid $$ waitng for jobs\n";
$worker->work while 1;
warn "$0 pid $$ waitng for jobs\n";
$worker->work while 1;