diff options
author | ivan <ivan> | 2004-06-25 10:25:10 +0000 |
---|---|---|
committer | ivan <ivan> | 2004-06-25 10:25:10 +0000 |
commit | e7227ac94d51a4830c0908174bdf8468deaac176 (patch) | |
tree | 5b4dd086d91e412049c77b6e0d6f3a5aa6aba11a /FS/bin | |
parent | 7b7cd75e272308f28fb34ecbdf192cc2d578eb5b (diff) |
ping the database and retry rather before doing anything
Diffstat (limited to 'FS/bin')
-rw-r--r-- | FS/bin/freeside-queued | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/FS/bin/freeside-queued b/FS/bin/freeside-queued index 6ea27c05f..0be3d9d7a 100644 --- a/FS/bin/freeside-queued +++ b/FS/bin/freeside-queued @@ -7,7 +7,7 @@ use Fcntl qw(:flock); 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 @@ while (1) { } $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' }, |