From 83d931fc9bb7741ae9076ffa53f49823960e49ca Mon Sep 17 00:00:00 2001 From: franck cuny Date: Wed, 7 Jul 2010 13:52:16 +0200 Subject: can return all jobs from a queue --- lib/presque/StatusHandler.pm | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/lib/presque/StatusHandler.pm b/lib/presque/StatusHandler.pm index 51499e6..e8870da 100644 --- a/lib/presque/StatusHandler.pm +++ b/lib/presque/StatusHandler.pm @@ -14,12 +14,37 @@ sub get { my ($self, $queue_name) = @_; if ($queue_name) { - my $key = $self->_queue($queue_name); + my $input = $self->request->parameters; + my $with_desc = ($input && $input->{with_desc}) ? 1 : 0; + my $key = $self->_queue($queue_name); $self->application->redis->llen( $key, sub { my $size = shift; - $self->entity({queue => $queue_name, size => $size}); + if ($with_desc) { + $self->application->redis->lrange( + $self->_queue($queue_name), + 0, $size, + sub { + my $jobs = shift; + $self->application->redis->mget( + @$jobs, + sub { + my $full_jobs = shift; + $self->entity( + { queue => $queue_name, + size => $size, + jobs => $full_jobs, + } + ); + } + ); + } + ); + } + else { + $self->entity({queue => $queue_name, size => $size}); + } } ); } -- cgit v1.2.3