diff --git a/app/code/Magento/Newsletter/Model/ResourceModel/Queue.php b/app/code/Magento/Newsletter/Model/ResourceModel/Queue.php index 12375a5a6ca07404fbcf813c56dc76f3a404c5d3..b25677846622bf175fb6c80ae632132d2fb43e2d 100644 --- a/app/code/Magento/Newsletter/Model/ResourceModel/Queue.php +++ b/app/code/Magento/Newsletter/Model/ResourceModel/Queue.php @@ -80,13 +80,13 @@ class Queue extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb $subscriberIds ); - $usedIds = $connection->fetchCol($select); + $usedIds = array_flip($connection->fetchCol($select)); + $subscriberIds = array_flip($subscriberIds); + $newIds = array_diff_key($subscriberIds, $usedIds); + $connection->beginTransaction(); try { - foreach ($subscriberIds as $subscriberId) { - if (in_array($subscriberId, $usedIds)) { - continue; - } + foreach (array_keys($newIds) as $subscriberId) { $data = []; $data['queue_id'] = $queue->getId(); $data['subscriber_id'] = $subscriberId;