diff options
author | ivan <ivan> | 2011-02-27 21:31:53 +0000 |
---|---|---|
committer | ivan <ivan> | 2011-02-27 21:31:53 +0000 |
commit | bed7609980610c6582e9a3842d28f15f837efa76 (patch) | |
tree | bc916218acd8d0758ed6b42595984727ce9eab17 | |
parent | b6b2c8881a7156df8f185147082219b6b96a530c (diff) |
add start of torrus srvderive daemon, RT#10574
-rw-r--r-- | FS/bin/freeside-torrus-srvderive | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/FS/bin/freeside-torrus-srvderive b/FS/bin/freeside-torrus-srvderive index 9d9fcb6eb..cb2bcf41a 100644 --- a/FS/bin/freeside-torrus-srvderive +++ b/FS/bin/freeside-torrus-srvderive @@ -51,10 +51,14 @@ my $sql = " AND srvexport.srv_date = other.srv_date AND ABS( $_date - $other_date ) <= 60 ) +"; + +my $orderlimit = " ORDER BY srv_date, srv_time LIMIT 100 "; + while (1) { my $found = 0; @@ -63,6 +67,24 @@ while (1) { my $serviceid = $torrus_srvderive->serviceid; + my @serviceids = $torrus_srvderive->component_serviceids; + + my @in = (); + for my $dir ('_IN', '_OUT') { + push @in, map dbh->quote("$_$dir"), @serviceids; + } + my $in = join(',', @in); + + my $ssql = " + $sql AND EXISTS ( + SELECT 1 FROM srvexport AS other + WHERE other.serviceid IN ($in) + AND srvexport.srv_date = other.srv_date + AND ABS( $_date - $other_date ) <= 60 + ) + $orderlimit + "; + warn $sql if $DEBUG > 2; my $sth = dbh->prepare($sql) or die $DBI::errstr; #better recovery? $sth->execute($serviceid, $serviceid) or die $sth->errstr; @@ -79,8 +101,6 @@ while (1) { if $DEBUG; $found++; - my @serviceids = $torrus_srvderive->component_serviceids; - for my $dir ('_IN', '_OUT') { my $sin = join(',', map dbh->quote("$_$dir"), @serviceids); |