From 3be2c32907ce979a4a33cac7ee40891447e885a6 Mon Sep 17 00:00:00 2001 From: ivan Date: Sun, 27 Feb 2011 22:04:31 +0000 Subject: [PATCH] add start of torrus srvderive daemon, RT#10574 --- FS/FS/Schema.pm | 6 +++--- FS/bin/freeside-torrus-srvderive | 15 +++++++++++++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index 218608832..512b9c369 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -3271,9 +3271,9 @@ sub tables_hashref { # tables of ours for doing torrus virtual port combining 'torrus_srvderive' => { 'columns' => [ - 'derivenum', 'serial', '', '', '', '', - 'serviceid', 'varchar', '', 64, '', '', #srvexport / reportfields - #'func', 'varchar', '', $char_d, '', '', + 'derivenum', 'serial', '', '', '', '', + 'serviceid', 'varchar', '', 64, '', '', #srvexport / reportfields + 'last_srv_date', 'date', 'NULL', '', '', '', ], 'primary_key' => 'derivenum', 'unique' => [ ['serviceid'] ], diff --git a/FS/bin/freeside-torrus-srvderive b/FS/bin/freeside-torrus-srvderive index 3a23f7cf9..04b763582 100644 --- a/FS/bin/freeside-torrus-srvderive +++ b/FS/bin/freeside-torrus-srvderive @@ -82,9 +82,13 @@ while (1) { AND srvexport.srv_date = other.srv_date AND ABS( $_date - $other_date ) <= 60 ) - $orderlimit "; + $ssql .= " AND srv_date >= '". $torrus_srvderive->last_srv_date. "' " + if $torrus_srvderive->last_srv_date; + + $ssql .= $orderlimit; + warn $ssql if $DEBUG > 1; my $sth = dbh->prepare($ssql) or die $DBI::errstr; #better recovery? $sth->execute($serviceid, $serviceid) or die $sth->errstr; @@ -125,10 +129,17 @@ while (1) { my $isth = dbh->prepare($isql) or die $DBI::errstr; #better recovery? $isth->execute( @param ) or die $isth->errstr; - dbh->commit or die dbh->errstr; } + if ( $srv_date ne $torrus_srvderive->last_srv_date ) { + warn "updating last_srv_date of $serviceid to $srv_date\n" if $DEBUG; + $torrus_srvderive->last_srv_date($srv_date); + my $error = $torrus_srvderive->replace; + die $error if $error; + } + dbh->commit or die dbh->errstr; + $prev = $cur; } -- 2.11.0