diff options
author | ivan <ivan> | 2004-06-25 10:25:02 +0000 |
---|---|---|
committer | ivan <ivan> | 2004-06-25 10:25:02 +0000 |
commit | e7acc4af0a47299644ff2389be3991b708878693 (patch) | |
tree | 57e9e0eac903cf04a6d5ec1c9b8dea2cbbdd36cf /FS/bin | |
parent | a78922d1673c7f79658d3b51353b4f63102bc7c8 (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' }, |