diff --git a/app/code/Magento/Sales/Model/EmailSenderHandler.php b/app/code/Magento/Sales/Model/EmailSenderHandler.php index fe8f1685fe525..7c7005bf0da75 100644 --- a/app/code/Magento/Sales/Model/EmailSenderHandler.php +++ b/app/code/Magento/Sales/Model/EmailSenderHandler.php @@ -90,6 +90,9 @@ public function sendEmails() if ($this->globalConfig->getValue('sales_email/general/async_sending')) { $this->entityCollection->addFieldToFilter('send_email', ['eq' => 1]); $this->entityCollection->addFieldToFilter('email_sent', ['null' => true]); + $this->entityCollection->setPageSize( + $this->globalConfig->getValue('sales_email/general/sending_limit') + ); /** @var \Magento\Store\Api\Data\StoreInterface[] $stores */ $stores = $this->getStores(clone $this->entityCollection); diff --git a/app/code/Magento/Sales/Test/Unit/Model/EmailSenderHandlerTest.php b/app/code/Magento/Sales/Test/Unit/Model/EmailSenderHandlerTest.php index 56ec763a31cfe..e26b6e52b8d17 100644 --- a/app/code/Magento/Sales/Test/Unit/Model/EmailSenderHandlerTest.php +++ b/app/code/Magento/Sales/Test/Unit/Model/EmailSenderHandlerTest.php @@ -118,7 +118,7 @@ public function testExecute($configValue, $collectionItems, $emailSendingResult) $path = 'sales_email/general/async_sending'; $this->globalConfig - ->expects($this->once()) + ->expects($this->at(0)) ->method('getValue') ->with($path) ->willReturn($configValue); diff --git a/app/code/Magento/Sales/etc/adminhtml/system.xml b/app/code/Magento/Sales/etc/adminhtml/system.xml index 9d6d11d56c81f..7d06e0f7b74c4 100644 --- a/app/code/Magento/Sales/etc/adminhtml/system.xml +++ b/app/code/Magento/Sales/etc/adminhtml/system.xml @@ -132,6 +132,14 @@ Magento\Config\Model\Config\Source\Enabledisable Magento\Sales\Model\Config\Backend\Email\AsyncSending + + + Limit how many entities (orders/shipments/etc) will be processed during one cron run. + required-number validate-number validate-greater-than-zero + + 1 + + diff --git a/app/code/Magento/Sales/etc/config.xml b/app/code/Magento/Sales/etc/config.xml index da2408416133d..d4d10bfa6dcce 100644 --- a/app/code/Magento/Sales/etc/config.xml +++ b/app/code/Magento/Sales/etc/config.xml @@ -29,6 +29,7 @@ 0 + 50 1 diff --git a/app/code/Magento/Sales/etc/di.xml b/app/code/Magento/Sales/etc/di.xml index 0f69389c2969e..3c246b02393fe 100644 --- a/app/code/Magento/Sales/etc/di.xml +++ b/app/code/Magento/Sales/etc/di.xml @@ -354,43 +354,43 @@ - SalesOrderSendEmails + SalesOrderSendEmails - SalesOrderInvoiceSendEmails + SalesOrderInvoiceSendEmails - SalesOrderShipmentSendEmails + SalesOrderShipmentSendEmails - SalesOrderCreditmemoSendEmails + SalesOrderCreditmemoSendEmails - SalesOrderSendEmails + SalesOrderSendEmails - SalesOrderInvoiceSendEmails + SalesOrderInvoiceSendEmails - SalesOrderShipmentSendEmails + SalesOrderShipmentSendEmails - SalesOrderCreditmemoSendEmails + SalesOrderCreditmemoSendEmails