fix a couple of sillies
[spider.git] / cmd / stat / msg.pl
index 5c5b46a04ed5bb4c9fd500a07311dcd96ce6da16..2b937d81f1db2633e5bb51310a5fde04afe1c6fe 100644 (file)
@@ -9,16 +9,36 @@ my @list = split /\s+/, $line;                      # generate a list of msg nos
 my @out;
 
 return (1, $self->msg('e5')) if $self->priv < 1;
-return (1, $self->msg('m16')) if @list == 0;
 
-foreach my $msgno (@list) {
-  my $ref = DXMsg::get($msgno);
-  if ($ref) {
-    @out = print_all_fields($self, $ref, "Msg Parameters $msgno");
-  } else {
-    push @out, $self->msg('m4', $msgno);
-  }
-  push @out, "" if @list > 1;
+if (@list == 0) {
+       my $ref;
+       push @out, "Work Queue Keys";
+       push @out, map { " $_" } sort keys %DXMsg::work;
+       push @out, "Busy Queue Data";
+       foreach $ref (sort {$a->to cmp $b->to} DXMsg::get_all_busy) {
+               my $msgno = $ref->msgno;
+               my $stream = $ref->stream;
+               my $lref = $ref->lines;
+               my $lines = 0;
+               $lines = @$lref if $lref;
+               my $count = $ref->count;
+               my $to = $ref->to;
+               my $from = $ref->from;
+               my $lastt = $ref->lastt ? " Last Processed: " . cldatetime($ref->lastt) : "";
+               my $waitt = $ref->waitt ? " Waiting since: " . cldatetime($ref->waitt) : "";
+               
+               push @out, "$from -> $to msg: $msgno stream: $stream Count: $count Lines: $lines$lastt$waitt";
+       }
+} else {
+       foreach my $msgno (@list) {
+               my $ref = DXMsg::get($msgno);
+               if ($ref) {
+                       @out = print_all_fields($self, $ref, "Msg Parameters $msgno");
+               } else {
+                       push @out, $self->msg('m4', $msgno);
+               }
+               push @out, "" if @list > 1;
+       }
 }
 
 return (1, @out);