From 01d907a9e0928d69ecb647746108fe45cbcc26e7 Mon Sep 17 00:00:00 2001 From: Dariusz Maciejewski Date: Mon, 11 Apr 2016 10:43:44 +0200 Subject: [PATCH] Fix queue subscribers adding performance --- .../Magento/Newsletter/Model/ResourceModel/Queue.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/code/Magento/Newsletter/Model/ResourceModel/Queue.php b/app/code/Magento/Newsletter/Model/ResourceModel/Queue.php index 12375a5a6ca07..01cbd61b2dd83 100644 --- a/app/code/Magento/Newsletter/Model/ResourceModel/Queue.php +++ b/app/code/Magento/Newsletter/Model/ResourceModel/Queue.php @@ -80,13 +80,13 @@ public function addSubscribersToQueue(ModelQueue $queue, array $subscriberIds) $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 ($newIds as $subscriberId) { $data = []; $data['queue_id'] = $queue->getId(); $data['subscriber_id'] = $subscriberId;