@@ -62,15 +62,22 @@ public function pop(string $queue, array $priorities): ?QueueJob
6262 $ now = Time::now ()->timestamp ;
6363
6464 foreach ($ priorities as $ priority ) {
65- if ($ tasks = $ this ->predis ->zrangebyscore ("queues: {$ queue }: {$ priority }" , '-inf ' , $ now , ['LIMIT ' => [0 , 1 ]])) {
66- if ($ this ->predis ->zrem ("queues: {$ queue }: {$ priority }" , ...$ tasks )) {
65+ $ tasks = $ this ->predis ->zrangebyscore (
66+ "queues: {$ queue }: {$ priority }" ,
67+ '-inf ' ,
68+ $ now ,
69+ ['LIMIT ' => [0 , 1 ]]
70+ );
71+ if ($ tasks !== []) {
72+ $ removed = $ this ->predis ->zrem ("queues: {$ queue }: {$ priority }" , ...$ tasks );
73+ if ($ removed !== 0 ) {
6774 break ;
6875 }
6976 $ tasks = [];
7077 }
7178 }
7279
73- if (empty ( $ tasks[ 0 ]) ) {
80+ if ($ tasks === [] ) {
7481 return null ;
7582 }
7683
@@ -93,7 +100,11 @@ public function later(QueueJob $queueJob, int $seconds): bool
93100 $ queueJob ->status = Status::PENDING ->value ;
94101 $ queueJob ->available_at = Time::now ()->addSeconds ($ seconds )->timestamp ;
95102
96- if ($ result = $ this ->predis ->zadd ("queues: {$ queueJob ->queue }: {$ queueJob ->priority }" , [json_encode ($ queueJob ) => $ queueJob ->available_at ->timestamp ])) {
103+ $ result = $ this ->predis ->zadd (
104+ "queues: {$ queueJob ->queue }: {$ queueJob ->priority }" ,
105+ [json_encode ($ queueJob ) => $ queueJob ->available_at ->timestamp ]
106+ );
107+ if ($ result !== 0 ) {
97108 $ this ->predis ->hdel ("queues: {$ queueJob ->queue }::reserved " , [$ queueJob ->id ]);
98109 }
99110
@@ -131,14 +142,16 @@ public function done(QueueJob $queueJob, bool $keepJob): bool
131142 public function clear (?string $ queue = null ): bool
132143 {
133144 if ($ queue !== null ) {
134- if ($ keys = $ this ->predis ->keys ("queues: {$ queue }:* " )) {
145+ $ keys = $ this ->predis ->keys ("queues: {$ queue }:* " );
146+ if ($ keys !== []) {
135147 return $ this ->predis ->del ($ keys ) > 0 ;
136148 }
137149
138150 return true ;
139151 }
140152
141- if ($ keys = $ this ->predis ->keys ('queues:* ' )) {
153+ $ keys = $ this ->predis ->keys ('queues:* ' );
154+ if ($ keys !== []) {
142155 return $ this ->predis ->del ($ keys ) > 0 ;
143156 }
144157
0 commit comments