Skip to content

Commit

Permalink
Add methdos for parallel queues
Browse files Browse the repository at this point in the history
  • Loading branch information
luishdez committed Apr 27, 2016
1 parent 487e2f1 commit 3c2dba2
Showing 1 changed file with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions Resque.php
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,49 @@ public function getQueues()
}, \Resque::queues());
}

/**
* Returns an array of queues with its current load
*
* @return array
*/
public function getQueuesLoad($pattern = null)
{
$queues = [];

foreach (\Resque::queues() as $queue) {
$queues[$queue] = \Resque::size($queue);
}

return $queues;
}

/**
* @param $queueKey
* @param $parallelQueues
*
* @return array of queues with its loads
*/
public function getParallelQueueLoads($queueKey, $parallelQueues)
{
for ($i=1; $i <= $parallelQueues; $i++) {
$queues[$queueKey.'-'.$i] = \Resque::size($queueKey.'-'.$i);
}

return $queues;
}

/**
* @return string The queue name with less job load
*/
public function getLessLoadedParallelQueue($queueKey, $parallelQueues)
{
$queues = $this->getParallelQueueLoads($queueKey, $parallelQueues);
asort($queues);
$lessLoadedQueue = array_slice($queues, 0, 1);

return key($lessLoadedQueue);
}

/**
* @param $queue
*
Expand Down

0 comments on commit 3c2dba2

Please sign in to comment.