Improve throttling handler

[MAILPOET-3588]
This commit is contained in:
Jan Lysý
2021-04-30 15:29:30 +02:00
committed by Veljko V
parent aba99b84f2
commit 50b484ab10

View File

@@ -47,7 +47,9 @@ class SendingThrottlingHandler {
$batchSize = $this->getBatchSize(); $batchSize = $this->getBatchSize();
if ($batchSize > 1) { if ($batchSize > 1) {
$batchSize = (int)ceil($this->getBatchSize() / 2); $batchSize = (int)ceil($this->getBatchSize() / 2);
$throttlingSettings = $this->loadSettings();
$throttlingSettings['batch_size'] = $batchSize; $throttlingSettings['batch_size'] = $batchSize;
unset($throttlingSettings['success_count']);
$this->logger->error("MailPoet throttling: decrease batch_size to: {$batchSize}"); $this->logger->error("MailPoet throttling: decrease batch_size to: {$batchSize}");
$this->saveSettings($throttlingSettings); $this->saveSettings($throttlingSettings);
} }
@@ -60,10 +62,10 @@ class SendingThrottlingHandler {
if (!isset($throttlingSettings['batch_size'])) { if (!isset($throttlingSettings['batch_size'])) {
return; return;
} }
$throttlingSettings['success_in_row'] = isset($throttlingSettings['success_in_row']) ? ++$throttlingSettings['success_in_row'] : 1; $throttlingSettings['success_count'] = isset($throttlingSettings['success_count']) ? ++$throttlingSettings['success_count'] : 1;
$this->logger->info("MailPoet throttling: increase success_in_row to: {$throttlingSettings['success_in_row']}"); $this->logger->info("MailPoet throttling: increase success_count to: {$throttlingSettings['success_count']}");
if ($throttlingSettings['success_in_row'] === self::SUCCESS_THRESHOLD_TO_INCREASE) { if ($throttlingSettings['success_count'] >= self::SUCCESS_THRESHOLD_TO_INCREASE) {
unset($throttlingSettings['success_in_row']); unset($throttlingSettings['success_count']);
$throttlingSettings['batch_size'] = min($this->getMaxBatchSize(), $throttlingSettings['batch_size'] * 2); $throttlingSettings['batch_size'] = min($this->getMaxBatchSize(), $throttlingSettings['batch_size'] * 2);
$this->logger->info("MailPoet throttling: increase batch_size to: {$throttlingSettings['batch_size']}"); $this->logger->info("MailPoet throttling: increase batch_size to: {$throttlingSettings['batch_size']}");
if ($this->getMaxBatchSize() === $throttlingSettings['batch_size']) { if ($this->getMaxBatchSize() === $throttlingSettings['batch_size']) {