add start of torrus srvderive daemon, RT#10574
[freeside.git] / FS / bin / freeside-torrus-srvderive
index b645016..2316df5 100644 (file)
@@ -71,6 +71,7 @@ while (1) {
       my( $srv_date, $srv_time ) = @$row;
       my $cur = str2time( "$srv_date $srv_time" );
       next if $cur-$prev <= 60;
+      last if time - $cur <= 300;
       
       warn "no $serviceid for $srv_date $srv_time; adding\n"
         if $DEBUG;
@@ -82,7 +83,7 @@ while (1) {
         my $sin = join(',', map dbh->quote("$_$dir"), @serviceids);
 
         my $sum = "
-          SELECT SUM(value) FROM srvexport AS other
+          SELECT COALESCE(SUM(value),0) FROM srvexport AS other
             WHERE other.serviceid IN ($sin)
               AND ABS( $cur - $other_date ) <= 60
         ";
@@ -93,14 +94,15 @@ while (1) {
         ";
         my @param = ( time2str('%Y-%m-%d', $cur), #srv_date
                       time2str('%X', $cur),       #srv_time
-                      $serviceid,
+                      "$serviceid$dir",
                       300, #intvl ... 
                     );
-        warn $isql. ' with param '. @param. "\n"
+        warn $isql. ' with param '. join(',',@param). "\n"
           if $DEBUG > 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;
                         
       }