REDROOM
PHP 8.2.31
Path:
Logout
Edit File
Size: 2.90 KB
Close
/home/nshryvcy/himaltourism.com/wp-content/plugins/mailpoet/lib/Cron/Workers/SendingQueue/SendingThrottlingHandler.php
Text
Base64
<?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing namespace MailPoet\Cron\Workers\SendingQueue; if (!defined('ABSPATH')) exit; use MailPoet\Logging\LoggerFactory; use MailPoet\Settings\SettingsController; use MailPoet\WP\Functions as WPFunctions; use MailPoetVendor\Monolog\Logger; class SendingThrottlingHandler { public const BATCH_SIZE = 20; public const SETTINGS_KEY = 'mta_throttling'; public const SUCCESS_THRESHOLD_TO_INCREASE = 10; /** @var Logger */ private $logger; /** @var SettingsController */ private $settings; /** @var WPFunctions */ private $wp; public function __construct( LoggerFactory $loggerFactory, SettingsController $settings, WPFunctions $wp ) { $this->logger = $loggerFactory->getLogger(LoggerFactory::TOPIC_SENDING); $this->settings = $settings; $this->wp = $wp; } public function getBatchSize(): int { $throttlingSettings = $this->loadSettings(); if (isset($throttlingSettings['batch_size'])) { return $throttlingSettings['batch_size']; } return $this->getMaxBatchSize(); } private function getMaxBatchSize(): int { return $this->wp->applyFilters('mailpoet_cron_worker_sending_queue_batch_size', self::BATCH_SIZE); } public function throttleBatchSize(): int { $batchSize = $this->getBatchSize(); if ($batchSize > 1) { $batchSize = (int)ceil($this->getBatchSize() / 2); $throttlingSettings = $this->loadSettings(); $throttlingSettings['batch_size'] = $batchSize; unset($throttlingSettings['success_count']); $this->logger->error("MailPoet throttling: decrease batch_size to: {$batchSize}"); $this->saveSettings($throttlingSettings); } return $batchSize; } public function processSuccess(): void { $throttlingSettings = $this->loadSettings(); if (!isset($throttlingSettings['batch_size'])) { return; } $throttlingSettings['success_count'] = isset($throttlingSettings['success_count']) ? ++$throttlingSettings['success_count'] : 1; $this->logger->info("MailPoet throttling: increase success_count to: {$throttlingSettings['success_count']}"); if ($throttlingSettings['success_count'] >= self::SUCCESS_THRESHOLD_TO_INCREASE) { unset($throttlingSettings['success_count']); $throttlingSettings['batch_size'] = min($this->getMaxBatchSize(), $throttlingSettings['batch_size'] * 2); $this->logger->info("MailPoet throttling: increase batch_size to: {$throttlingSettings['batch_size']}"); if ($this->getMaxBatchSize() === $throttlingSettings['batch_size']) { unset($throttlingSettings['batch_size']); } } $this->saveSettings($throttlingSettings); } private function loadSettings(): ?array { return $this->settings->get(self::SETTINGS_KEY); } private function saveSettings(array $settings): void { $this->settings->set(self::SETTINGS_KEY, $settings); } }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 1 × Files: 4
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
Tasks
DIR
-
drwxr-xr-x
2023-04-04 05:35:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
index.php
0 B
lrw-r--r--
2023-04-04 05:35:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
SendingErrorHandler.php
1.91 KB
lrw-r--r--
2023-04-04 05:35:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
SendingQueue.php
18.61 KB
lrw-r--r--
2023-04-04 05:35:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
SendingThrottlingHandler.php
2.90 KB
lrw-r--r--
2023-04-04 05:35:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).