diff --git a/src/Repositories/RedisRepository.php b/src/Repositories/RedisRepository.php index 9b814be..95c0a2f 100644 --- a/src/Repositories/RedisRepository.php +++ b/src/Repositories/RedisRepository.php @@ -29,7 +29,7 @@ public function __construct() */ public function partitions($queue) { - return $this->partitionsPrivate($queue); + return $this->getPartitionNames($queue); } /** @@ -211,9 +211,7 @@ public function failedPartitionsWithCount($queue) $queue, 'failedPartitionListPattern', 'extractPartitionNameFromFailedPartitionKey', - 'failedPartitionKey', - 'failedPartitionPerSecKey', - false + 'failedPartitionKey' ); } @@ -766,6 +764,20 @@ private function partitionsPrivate( return array_values($partitions); } + /** + * Get partition names of a queue + * + * @param string $queue + * + * @return string + */ + public function getPartitionNames($queue) + { + $listKeyName = $this->queuePartitionsListKeyName($queue); + + return $this->redis->smembers($listKeyName); + } + /** * Get random partition name of a queue * @@ -924,23 +936,10 @@ private function popPrivate($queue, $partition, $partitionKeyResolver = 'partiti $partitionKey = $this->$partitionKeyResolver($queue, $partition); $processedKey = $this->partitionProcessedCountJobKey($queue, $partition); - $partitionPerSecKey = $this->partitionPerSecKey($queue, $partition); $this->redis->incr($processedKey); $this->redis->expire($processedKey, 3); - $now = time(); - list ($lastAccess, $lastPersec) = explode(',', $this->redis->get($partitionPerSecKey) ?? ($now - 1) . ',0'); - - if ($now - $lastAccess >= 1) { - $persec = max($this->redis->get($processedKey) ?? 0, 0); - - $data = $now . ',' . max($persec, $persec - $lastPersec); - $this->redis->set($partitionPerSecKey, $data, 'EX', 3); - - $this->redis->decrBy($processedKey, $persec); - } - $result = $this->redis->multi() ->lpop($partitionKey) ->exists($partitionKey)