Server IP : 172.67.157.199 / Your IP : 3.145.169.176 [ Web Server : Apache System : Linux b70eb322-3aee-0c53-7c82-0db91281f2c6.secureserver.net 6.1.90-1.el9.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 2 12:09:22 EDT 2024 x86_64 User : root ( 0) PHP Version : 8.0.30.2 Disable Function : NONE Domains : 0 Domains MySQL : ON | cURL : ON | WGET : ON | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/wp-content/mu-plugins/object-cache-pro/src/Connectors/Concerns/ |
Upload File : |
<?php /** * Copyright © 2019-2024 Rhubarb Tech Inc. All Rights Reserved. * * The Object Cache Pro Software and its related materials are property and confidential * information of Rhubarb Tech Inc. Any reproduction, use, distribution, or exploitation * of the Object Cache Pro Software and its related materials, in whole or in part, * is strictly forbidden unless prior permission is obtained from Rhubarb Tech Inc. * * In addition, any reproduction, use, distribution, or exploitation of the Object Cache Pro * Software and its related materials, in whole or in part, is subject to the End-User License * Agreement accessible in the included `LICENSE` file, or at: https://objectcache.pro/eula */ declare(strict_types=1); namespace RedisCachePro\Connectors\Concerns; use RedisCachePro\Configuration\Configuration; trait HandlesBackoff { /** * Returns the delay in milliseconds before the next attempt. * * @param \RedisCachePro\Configuration\Configuration $config * @param int $attempt * @param int $previousDelay * @return int */ public static function nextDelay(Configuration $config, int $attempt, int $previousDelay) { $random_range = function ($min, $max) { return $max < $min ? mt_rand($max, $min) : mt_rand($min, $max); }; if ($config->backoff === Configuration::BACKOFF_SMART) { $cap = $config->timeout * 1000; $base = $config->retry_interval; return (int) min($cap, $random_range($base, $previousDelay * 3)); } if ($config->backoff === Configuration::BACKOFF_NONE) { return $config->retry_interval; } return ++$attempt * $config->retry_interval; } }