Individual defer limits per worker task

This commit is contained in:
Michael 2023-10-29 12:51:26 +00:00
parent a7c985a590
commit 9faad72ec0
4 changed files with 15 additions and 4 deletions

View file

@ -1379,10 +1379,11 @@ class Worker
/**
* Defers the current worker entry
*
* @param int $worker_defer_limit Maximum defer limit
* @return boolean had the entry been deferred?
* @throws \Exception
*/
public static function defer(): bool
public static function defer(int $worker_defer_limit = 0): bool
{
$queue = DI::app()->getQueue();
@ -1395,6 +1396,10 @@ class Worker
$max_level = DI::config()->get('system', 'worker_defer_limit');
if ($worker_defer_limit) {
$max_level = min($worker_defer_limit, $max_level);
}
$new_retrial = self::getNextRetrial($queue, $max_level);
if ($new_retrial > $max_level) {