X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fcluster.pl;h=8b45e2bd65d805d7fc411650b387a586199d103f;hb=9e2fbafcfdab1ee45e581524311f1a97ac41f6ad;hp=d49c7966f96001d8750d5ca3bfd3e99194ef0433;hpb=7c41fe2814a16ad0f7ced2ec5e50f6e8647010f9;p=spider.git diff --git a/perl/cluster.pl b/perl/cluster.pl index d49c7966..8b45e2bd 100755 --- a/perl/cluster.pl +++ b/perl/cluster.pl @@ -59,6 +59,7 @@ use Geomag; use CmdAlias; use Filter; use Local; +use DXDb; use Fcntl ':flock'; use Carp qw(cluck); @@ -67,7 +68,7 @@ package main; @inqueue = (); # the main input queue, an array of hashes $systime = 0; # the time now (in seconds) -$version = "1.32"; # the version no of the software +$version = "1.34"; # the version no of the software $starttime = 0; # the starting time of the cluster $lockfn = "cluster.lock"; # lock file name @@ -177,6 +178,9 @@ sub cease }; dbg('local', "Local::finish error $@") if $@; + # close all databases + DXDb::closeall; + # disconnect users foreach $dxchan (DXChannel->get_all()) { next if $dxchan->is_ak1a; @@ -241,9 +245,6 @@ sub process_inqueue # translate any crappy characters into hex characters if ($line =~ /[\x00-\x06\x08\x0a-\x1f\x7f-\xff]/o) { $line =~ s/([\x00-\x1f\x7f-\xff])/uc sprintf("%%%02x",ord($1))/eg; - ++$error; -# dbg('chan', "<- $sort $call **CRAP**: $line"); -# return; } # do the really sexy console interface bit! (Who is going to do the TK interface then?) @@ -255,13 +256,8 @@ sub process_inqueue $dxchan->start($line, $sort); } elsif ($sort eq 'I') { die "\$user not defined for $call" if !defined $user; - - if ($error) { - dbg('chan', "DROPPED with $error duff characters"); - } else { - # normal input - $dxchan->normal($line); - } + # normal input + $dxchan->normal($line); disconnect($dxchan) if ($dxchan->{state} eq 'bye'); } elsif ($sort eq 'Z') { disconnect($dxchan); @@ -353,6 +349,10 @@ DXMsg::clean_old(); print "reading cron jobs ...\n"; DXCron->init(); +# read in database descriptors +print "reading database descriptors ...\n"; +DXDb::load(); + # starting local stuff print "doing local initialisation ...\n"; eval { @@ -368,7 +368,7 @@ print "orft we jolly well go ...\n"; dbg('chan', "DXSpider version $version started..."); for (;;) { my $timenow; - Msg->event_loop(1, 0.001); + Msg->event_loop(1, 0.1); $timenow = time; process_inqueue(); # read in lines from the input queue and despatch them @@ -382,6 +382,7 @@ for (;;) { DXProt::process(); # process ongoing ak1a pcxx stuff DXConnect::process(); DXMsg::process(); + DXDb::process(); eval { Local::process(); # do any localised processing };