From: ivan Date: Sun, 27 Feb 2011 22:04:31 +0000 (+0000) Subject: add start of torrus srvderive daemon, RT#10574 X-Git-Tag: freeside_2_3_0~547 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=3be2c32907ce979a4a33cac7ee40891447e885a6 add start of torrus srvderive daemon, RT#10574 --- 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; }