add more routing code together with associated commands
[spider.git] / cmd / stat / msg.pl
index 5c5b46a04ed5bb4c9fd500a07311dcd96ce6da16..2b7ed7525c566c3635eb59134dd4c088af02ff46 100644 (file)
@@ -9,16 +9,32 @@ 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->call cmp $b->call} DXMsg::get_all_busy) {
+               my $msgno = $ref->msgno;
+               my $stream = $ref->stream;
+               my $lines = scalar $ref->lines;
+               my $count = $ref->count;
+               my $lastt = $ref->lastt ? " Last Processed: " . cldatetime($ref->lastt) : "";
+               my $waitt = $ref->waitt ? " Waiting since: " . cldatetime($ref->waitt) : "";
+               
+               push @out, " $call -> 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);