From 3a9fc174740bf913174baf462a374e8aed0e7b1d Mon Sep 17 00:00:00 2001 From: s j <sj@1729.be> Date: Thu, 28 Apr 2022 06:28:48 +0200 Subject: [PATCH] imp: adjust dividend batch size to max execution time --- .../shareholder_register_dividend/src/DividendService.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/shareholder_register_dividend/src/DividendService.php b/modules/shareholder_register_dividend/src/DividendService.php index ed395a7c..488b21cf 100644 --- a/modules/shareholder_register_dividend/src/DividendService.php +++ b/modules/shareholder_register_dividend/src/DividendService.php @@ -136,10 +136,16 @@ class DividendService implements DividendServiceInterface { $context['sandbox']['shareholder_ids_count'] = count($context['sandbox']['shareholder_ids']); } + $process_plugin = DividendService::getDividendProcessDefinition($dividend_config['process']); $process_plugin->init($context, $dividend_config); - for ($i = 0; $i < 100; $i++) { + $max_execution_time = ini_get('max_execution_time'); + if (!is_numeric($max_execution_time) || $max_execution_time <= 1) { + $max_execution_time = 30; + } + $max_time = time() + ($max_execution_time * 0.8); + for ($i = 0; $i < 100 && time() < $max_time; $i++) { if ($shareholder_id = array_pop($context['sandbox']['shareholder_ids'])) { $shareholder = Shareholder::load($shareholder_id); -- GitLab