freeside/FS/bin freeside-queued,1.27,1.28

ivan ivan at pouncequick.420.am
Fri Jun 25 03:25:05 PDT 2004


Update of /home/cvs/cvsroot/freeside/FS/bin
In directory pouncequick:/tmp/cvs-serv1045/bin

Modified Files:
	freeside-queued 
Log Message:
ping the database and retry rather before doing anything

Index: freeside-queued
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/bin/freeside-queued,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- freeside-queued	28 Oct 2002 13:22:45 -0000	1.27
+++ freeside-queued	25 Jun 2004 10:25:02 -0000	1.28
@@ -7,7 +7,7 @@
 use POSIX qw(:sys_wait_h setsid);
 use Date::Format;
 use IO::File;
-use FS::UID qw(adminsuidsetup forksuidsetup driver_name dbh);
+use FS::UID qw(adminsuidsetup forksuidsetup driver_name dbh myconnect);
 use FS::Record qw(qsearch qsearchs);
 use FS::queue;
 use FS::queue_depend;
@@ -75,18 +75,27 @@
   }
   $warnkids=0;
 
-  my $nodepend = driver_name eq 'mysql'
-   ? ''
-   : 'AND 0 = ( SELECT COUNT(*) FROM queue_depend'.
-     ' WHERE queue_depend.jobnum = queue.jobnum ) ';
+  my $dbh = dbh;
+  unless ( $dbh->ping ) {
+    warn "WARNING: connection to database lost, reconnecting...\n";
+    myconnect;
+    unless ( $dbh->ping ) {
+      warn "WARNING: still no connection to database, sleeping for retry...\n";
+      sleep 10;
+      next;
+    }
+  }
 
   #my($job, $ljob);
   #{
   #  my $oldAutoCommit = $FS::UID::AutoCommit;
   #  local $FS::UID::AutoCommit = 0;
   $FS::UID::AutoCommit = 0;
-  my $dbh = dbh; 
   
+  my $nodepend = driver_name eq 'mysql'
+   ? ''
+   : 'AND 0 = ( SELECT COUNT(*) FROM queue_depend'.
+     ' WHERE queue_depend.jobnum = queue.jobnum ) ';
   my $job = qsearchs(
     'queue',
     { 'status' => 'new' },




More information about the freeside-commits mailing list