diff --git a/src/Core/Worker.php b/src/Core/Worker.php index 808be79a49..ffca31ddfd 100644 --- a/src/Core/Worker.php +++ b/src/Core/Worker.php @@ -1234,7 +1234,8 @@ class Worker $id = $queue['id']; $priority = $queue['priority']; - $max_level = 15; + $max_level = Config::get('system', 'worker_defer_limit'); + $new_retrial = self::getNextRetrial($queue, $max_level); if ($new_retrial > $max_level) { diff --git a/static/defaults.config.php b/static/defaults.config.php index b4471af25c..dcda564c2a 100644 --- a/static/defaults.config.php +++ b/static/defaults.config.php @@ -427,6 +427,10 @@ return [ // Setting 0 would allow maximum worker queues at all times, which is not recommended. 'worker_load_exponent' => 3, + // worker_defer_limit (Integer) + // Per default the systems tries delivering for 15 times before dropping it. + 'worker_defer_limit' => 15, + // xrd_timeout (Integer) // Timeout in seconds for fetching the XRD links. 'xrd_timeout' => 20,