Skip to content

Commit f55974a

Browse files
authored
Merge pull request #501 from php-enqueue/pr-396
[BC break][dbal] Convert between Message::$expire and DbalMessage::$timeToLive
2 parents dd99305 + 640024d commit f55974a

File tree

3 files changed

+17
-6
lines changed

3 files changed

+17
-6
lines changed

Diff for: pkg/dbal/Client/DbalDriver.php

+12-2
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,12 @@ public function createTransportMessage(Message $message)
7171
$transportMessage->setProperties($properties);
7272
$transportMessage->setMessageId($message->getMessageId());
7373
$transportMessage->setTimestamp($message->getTimestamp());
74-
$transportMessage->setDeliveryDelay($message->getDelay() * 1000);
74+
75+
$delay = $message->getDelay();
76+
$transportMessage->setDeliveryDelay((null === $delay) ? null : ($delay * 1000));
77+
78+
$timeToLive = $message->getExpire();
79+
$transportMessage->setTimeToLive((null === $timeToLive) ? null : ($timeToLive * 1000));
7580
$transportMessage->setReplyTo($message->getReplyTo());
7681
$transportMessage->setCorrelationId($message->getCorrelationId());
7782
if (array_key_exists($message->getPriority(), self::$priorityMap)) {
@@ -97,7 +102,12 @@ public function createClientMessage(PsrMessage $message)
97102
$clientMessage->setContentType($message->getHeader('content_type'));
98103
$clientMessage->setMessageId($message->getMessageId());
99104
$clientMessage->setTimestamp($message->getTimestamp());
100-
$clientMessage->setDelay($message->getDeliveryDelay() / 1000);
105+
106+
$timeToLive = $message->getTimeToLive();
107+
$clientMessage->setExpire((null === $timeToLive) ? null : (int) ($timeToLive / 1000));
108+
109+
$delay = $message->getDeliveryDelay();
110+
$clientMessage->setDelay((null === $delay) ? null : (int) ($delay / 1000));
101111
$clientMessage->setReplyTo($message->getReplyTo());
102112
$clientMessage->setCorrelationId($message->getCorrelationId());
103113

Diff for: pkg/dbal/DbalConsumer.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ protected function receiveMessage()
163163

164164
$this->dbal->commit();
165165

166-
if (empty($dbalMessage['time_to_live']) || $dbalMessage['time_to_live'] > time()) {
166+
if (empty($dbalMessage['time_to_live']) || ($dbalMessage['time_to_live'] / 1000) > microtime(true)) {
167167
return $this->convertMessage($dbalMessage);
168168
}
169169
} catch (\Exception $e) {

Diff for: pkg/dbal/Tests/Client/DbalDriverTest.php

+4-3
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ public function testShouldConvertTransportMessageToClientMessage()
9494
$transportMessage->setTimestamp(1000);
9595
$transportMessage->setPriority(2);
9696
$transportMessage->setDeliveryDelay(12345);
97+
$transportMessage->setTimeToLive(67890);
9798

9899
$driver = new DbalDriver(
99100
$this->createPsrContextMock(),
@@ -117,9 +118,8 @@ public function testShouldConvertTransportMessageToClientMessage()
117118
$this->assertSame('MessageId', $clientMessage->getMessageId());
118119
$this->assertSame('ContentType', $clientMessage->getContentType());
119120
$this->assertSame(1000, $clientMessage->getTimestamp());
120-
$this->assertSame(12.345, $clientMessage->getDelay());
121-
122-
$this->assertNull($clientMessage->getExpire());
121+
$this->assertSame(12, $clientMessage->getDelay());
122+
$this->assertSame(67, $clientMessage->getExpire());
123123
$this->assertSame(MessagePriority::NORMAL, $clientMessage->getPriority());
124124
}
125125

@@ -164,6 +164,7 @@ public function testShouldConvertClientMessageToTransportMessage()
164164
$this->assertSame([
165165
'key' => 'val',
166166
], $transportMessage->getProperties());
167+
$this->assertSame(123000, $transportMessage->getTimeToLive());
167168
$this->assertSame('MessageId', $transportMessage->getMessageId());
168169
$this->assertSame(1000, $transportMessage->getTimestamp());
169170
$this->assertSame(23000, $transportMessage->getDeliveryDelay());

0 commit comments

Comments
 (0)