Skip to content

Commit 0ae5868

Browse files
committed
ACP2E-3387: [Cloud] Magento: queue message has been deleted
1 parent 4e64423 commit 0ae5868

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

app/code/Magento/MysqlMq/Model/ResourceModel/Queue.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,9 @@ public function deleteMarkedMessages(): void
173173

174174
$select = $connection->select()
175175
->from(['queue_message_status' => $this->getMessageStatusTable()], ['message_id'])
176-
->where('status = ?', QueueManagement::MESSAGE_STATUS_TO_BE_DELETED);
177-
$connection->delete($this->getMessageTable(), 'id IN (' . $select->assemble() . ')');
176+
->where('status <> ?', QueueManagement::MESSAGE_STATUS_TO_BE_DELETED)
177+
->distinct();
178+
$connection->delete($this->getMessageTable(), 'id NOT IN (' . $select->assemble() . ')');
178179
}
179180

180181
/**

app/code/Magento/MysqlMq/Test/Unit/Model/ResourceModel/QueueTest.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -286,16 +286,17 @@ function ($arg1, $arg2) use ($tableNames) {
286286
$select->expects($this->once())
287287
->method('from')->with(['queue_message_status' => $tableNames[0]], ['message_id'])->willReturnSelf();
288288
$select->expects($this->once())->method('where')
289-
->with('status = ?', QueueManagement::MESSAGE_STATUS_TO_BE_DELETED)
289+
->with('status <> ?', QueueManagement::MESSAGE_STATUS_TO_BE_DELETED)
290290
->willReturnSelf();
291+
$select->expects($this->once())->method('distinct')->willReturnSelf();
291292
$select->expects($this->once())
292293
->method('assemble')
293294
->willReturn('SELECT message_id FROM queue_message_status WHERE status = 7');
294295

295296
$connection->expects($this->once())->method('delete')
296297
->with(
297298
$tableNames[1],
298-
'id IN (SELECT message_id FROM queue_message_status WHERE status = 7)'
299+
'id NOT IN (SELECT message_id FROM queue_message_status WHERE status = 7)'
299300
)->willReturn(2);
300301
$this->queue->deleteMarkedMessages();
301302
}

0 commit comments

Comments
 (0)