Skip to content

Commit 5eb6787

Browse files
committed
check for interface, fix job to delay, using proposal 'delayable' method'
1 parent c54b6fa commit 5eb6787

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/Job.php

+9-5
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Interop\Queue\PsrConsumer;
99
use Interop\Queue\PsrContext;
1010
use Interop\Queue\PsrMessage;
11+
use Enqueue\AmqpTools\DelayStrategyAware;
1112

1213
class Job extends BaseJob implements JobContract
1314
{
@@ -41,7 +42,7 @@ public function __construct(Container $container, PsrContext $psrContext, PsrCon
4142
$this->psrMessage = $psrMessage;
4243
$this->connectionName = $connectionName;
4344
}
44-
45+
4546
public function getJobId()
4647
{
4748
return $this->psrMessage->getMessageId();
@@ -62,16 +63,19 @@ public function delete()
6263
*/
6364
public function release($delay = 0)
6465
{
65-
parent::release($job);
66+
parent::release($delay);
6667

6768
$requeueMessage = clone $this->psrMessage;
6869
$requeueMessage->setProperty('x-attempts', $this->attempts() + 1);
6970

70-
$this->psrContext->createProducer()
71-
->setDeliveryDelay($this->secondsUntil($delay))
72-
->send($this->psrConsumer->getQueue(), $requeueMessage);
71+
$producer = $this->psrContext->createProducer();
72+
73+
if ($producer instanceof DelayStrategyAware && $producer->delayable()) {
74+
$producer->setDeliveryDelay($this->secondsUntil($delay));
75+
}
7376

7477
$this->psrConsumer->acknowledge($this->psrMessage);
78+
$producer->send($this->psrConsumer->getQueue(), $requeueMessage);
7579
}
7680

7781
/**

0 commit comments

Comments
 (0)