X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fstat%2Fmsg.pl;h=6dd9760fd3cf3eb4102b9a4c4041e610408b5e93;hb=713a209e150e27a231f7ac18992ddf36bc14c5d1;hp=5c5b46a04ed5bb4c9fd500a07311dcd96ce6da16;hpb=60a8e88a0c2c38a0456c3a530cb1e6b32cf703ba;p=spider.git diff --git a/cmd/stat/msg.pl b/cmd/stat/msg.pl index 5c5b46a0..6dd9760f 100644 --- a/cmd/stat/msg.pl +++ b/cmd/stat/msg.pl @@ -1,7 +1,7 @@ # # show all the values on a message header # -# $Id$ +# # my ($self, $line) = @_; @@ -9,16 +9,41 @@ 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 (DXMsg::get_all_fwq()); + push @out, "Busy Queue Data"; + foreach my $key (sort (DXMsg::get_all_busy())) { + $ref = DXMsg::get_busy($key); + if ($ref) { + 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 $tonode = $ref->tonode; + my $lastt = $ref->lastt ? " Last Processed: " . cldatetime($ref->lastt) : ""; + my $waitt = $ref->waitt ? " Waiting since: " . cldatetime($ref->waitt) : ""; + push @out, " $key/$tonode: $from -> $to msg: $msgno stream: $stream Count: $count Lines: $lines$lastt$waitt" + } else { + push @out, " dangling ref for $key"; + } + } +} 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);