Skip to content

Commit f86211b

Browse files
committed
Merge 'varvar/master' into old-pulls
Closes chrisboulton/php-resque#284
2 parents bb25f4b + 5290fde commit f86211b

File tree

1 file changed

+34
-20
lines changed

1 file changed

+34
-20
lines changed

lib/Resque.php

+34-20
Original file line numberDiff line numberDiff line change
@@ -141,9 +141,9 @@ public static function pop($queue)
141141
public static function dequeue($queue, $items = Array())
142142
{
143143
if(count($items) > 0) {
144-
return self::removeItems($queue, $items);
144+
return self::removeItems($queue, $items);
145145
} else {
146-
return self::removeList($queue);
146+
return self::removeList($queue);
147147
}
148148
}
149149

@@ -264,6 +264,20 @@ public static function queues()
264264
return $queues;
265265
}
266266

267+
/**
268+
* Retrieve all the items of a queue with Redis
269+
*
270+
* @return array Array of items.
271+
*/
272+
public static function items($queue, $start = 0, $stop = -1)
273+
{
274+
$list = self::redis()->lrange('queue:' . $queue, $start, $stop);
275+
if(!is_array($list)) {
276+
$list = array();
277+
}
278+
return $list;
279+
}
280+
267281
/**
268282
* Remove Items from the queue
269283
* Safely moving each item to a temporary queue before processing it
@@ -318,7 +332,7 @@ private static function removeItems($queue, $items = Array())
318332

319333
/**
320334
* matching item
321-
* item can be ['class'] or ['class' => 'id'] or ['class' => {:foo => 1, :bar => 2}]
335+
* item can be ['class'] or ['class' => 'id'] or ['class' => {'foo' => 1, 'bar' => 2}]
322336
* @private
323337
*
324338
* @params string $string redis result in json
@@ -331,24 +345,24 @@ private static function matchItem($string, $items)
331345
$decoded = json_decode($string, true);
332346

333347
foreach($items as $key => $val) {
334-
# class name only ex: item[0] = ['class']
335-
if (is_numeric($key)) {
336-
if($decoded['class'] == $val) {
337-
return true;
338-
}
339-
# class name with args , example: item[0] = ['class' => {'foo' => 1, 'bar' => 2}]
340-
} elseif (is_array($val)) {
341-
$decodedArgs = (array)$decoded['args'][0];
342-
if ($decoded['class'] == $key &&
343-
count($decodedArgs) > 0 && count(array_diff($decodedArgs, $val)) == 0) {
344-
return true;
348+
# class name only ex: item[0] = ['class']
349+
if (is_numeric($key)) {
350+
if($decoded['class'] == $val) {
351+
return true;
352+
}
353+
# class name with args , example: item[0] = ['class' => {'foo' => 1, 'bar' => 2}]
354+
} elseif (is_array($val)) {
355+
$decodedArgs = (array)$decoded['args'][0];
356+
if ($decoded['class'] == $key &&
357+
count($decodedArgs) > 0 && count(array_diff($decodedArgs, $val)) == 0) {
358+
return true;
359+
}
360+
# class name with ID, example: item[0] = ['class' => 'id']
361+
} else {
362+
if ($decoded['class'] == $key && $decoded['id'] == $val) {
363+
return true;
364+
}
345365
}
346-
# class name with ID, example: item[0] = ['class' => 'id']
347-
} else {
348-
if ($decoded['class'] == $key && $decoded['id'] == $val) {
349-
return true;
350-
}
351-
}
352366
}
353367
return false;
354368
}

0 commit comments

Comments
 (0)