Add code to AST_VDauto_dial.pl to remove Jammed LIVE vicidial_auto_calls records

git-svn-id: svn://192.168.202.10@389 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2006-11-13 20:19:53 +00:00
parent 2c1651a278
commit ea68853cfd
+48
View File
@@ -106,6 +106,7 @@ $US='__';
$MT[0]='';
$RECcount=''; ### leave blank for no REC count
$RECprefix='7'; ### leave blank for no REC prefix
$useJAMdebugFILE='1'; ### leave blank for no Jam call debug file writing
# default path to astguiclient configuration file:
@@ -154,6 +155,7 @@ if (!$VARDB_port) {$VARDB_port='3306';}
&get_time_now; # update time/date variables
if (!$VDADLOGfile) {$VDADLOGfile = "$PATHlogs/vdautodial.$year-$mon-$mday";}
if (!$JAMdebugFILE) {$JAMdebugFILE = "$PATHlogs/vdad-JAM.$year-$mon-$mday";}
use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second
use DBI;
@@ -948,6 +950,36 @@ while($one_day_interval > 0)
&event_logger;
### For debugging purposes, try to grab Jammed calls and log them to jam logfile
if ($useJAMdebugFILE)
{
$stmtA = "SELECT * FROM vicidial_auto_calls where server_ip='$server_ip' and last_update_time < '$BDtsSQLdate' and status IN('LIVE')";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
$JAMrec_count=0;
while ($sthArows > $JAMrec_count)
{
@aryA = $sthA->fetchrow_array;
$jam_string = "$JAMrec_count|$BDtsSQLdate| |$aryA[0]|$aryA[1]|$aryA[2]|$aryA[3]|$aryA[4]|$aryA[5]|$aryA[6]|$aryA[7]|$aryA[8]|$aryA[9]|$aryA[10]|$aryA[11]|$aryA[12]|$aryA[13]|$aryA[14]|";
&jam_event_logger;
$JAMrec_count++;
}
$sthA->finish();
}
### delete call records that are LIVE and not updated for over 10 seconds
$stmtA = "DELETE FROM vicidial_auto_calls where server_ip='$server_ip' and last_update_time < '$BDtsSQLdate' and status IN('LIVE');";
$affected_rows = $dbhA->do($stmtA);
$event_string = "| lagged call vdac call DELETED $affected_rows|$BDtsSQLdate|";
&event_logger;
if ($affected_rows > 0)
{
$jam_string = "| lagged call vdac call DELETED $affected_rows|$BDtsSQLdate|";
&jam_event_logger;
}
@@ -1181,3 +1213,19 @@ if ($SYSLOG)
}
$event_string='';
}
sub jam_event_logger
{
if ($DB) {print "$now_date|$jam_string|\n";}
if ($useJAMdebugFILE)
{
### open the log file for writing ###
open(Jout, ">>$JAMdebugFILE")
|| die "Can't open $JAMdebugFILE: $!\n";
print Jout "$now_date|$jam_string|\n";
close(Jout);
}
$jam_string='';
}