Skip to content

Commit 8b28548

Browse files
committed
ACP2E-3387: [Cloud] Magento: queue message has been deleted
1 parent 2ce8d9c commit 8b28548

File tree

1 file changed

+10
-3
lines changed
  • app/code/Magento/MysqlMq/Model/ResourceModel

1 file changed

+10
-3
lines changed

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

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ public function getMessages($queueName, $limit = null)
163163
}
164164

165165
/**
166-
* Delete messages if there is no queue whrere the message is not in status TO BE DELETED
166+
* Delete messages if there is no queue where the message is not in status TO BE DELETED
167167
*
168168
* @return void
169169
*/
@@ -177,8 +177,15 @@ public function deleteMarkedMessages()
177177
->distinct();
178178
$messageIds = $connection->fetchCol($select);
179179

180-
$condition = count($messageIds) > 0 ? ['id NOT IN (?)' => $messageIds] : null;
181-
$connection->delete($this->getMessageTable(), $condition);
180+
if ($messageIds) {
181+
$condition = count($messageIds) > 0 ? ['id NOT IN (?)' => $messageIds] : null;
182+
$connection->delete($this->getMessageTable(), $condition);
183+
} else {
184+
$select = $connection->select()
185+
->from(['queue_message_status' => $this->getMessageStatusTable()], ['message_id'])
186+
->where('status = ?', QueueManagement::MESSAGE_STATUS_TO_BE_DELETED);
187+
$connection->delete($this->getMessageTable(), 'id IN (' . $select->assemble() . ')');
188+
}
182189
}
183190

184191
/**

0 commit comments

Comments
 (0)