Ведро токенов | Неустранимая ошибка: длина строки не превышает 64 бита. PHP 8.2 | Ограничение скорости APIPhp

Кемеровские программисты php общаются здесь
Anonymous
Ведро токенов | Неустранимая ошибка: длина строки не превышает 64 бита. PHP 8.2 | Ограничение скорости API

Сообщение Anonymous »

Неустранимая ошибка: неперехваченная пропускная способностьThrottle\tokenBucket\storage\StorageException:
Длина строки не превышает 64 бита. в \bandwidth-throttle\token-bucket\classes\util\DoublePacker.php: 41

Эта ошибка при применении следующего кода в конструкторе ApiController и пытался использовать потребление:

Код: Выделить всё

function __construct() {
$this->storage = new FileStorage(__DIR__ . "/api.bucket");
$this->rate    = new Rate(10, Rate::SECOND);
$this->bucket  = new TokenBucket(10, $this->rate, $this->storage);
//Following code executed once, then commented
//$this->bucket->bootstrap(10);
}
Проверка ограничения скорости

Код: Выделить всё

protected function checkRateLimit() {
if (!$this->bucket->consume(1, $seconds)) {
http_response_code(429);
header(sprintf("Retry-After: %d", floor($seconds)));
exit();
}
//echo "Continue to API response";
return true;
}
Я также заметил, что класс FileStorage отправляет пустую строку в функцию unpack() в Double Packer в строке 129.

Код: Выделить всё

bandwidthThrottle\tokenBucket\util\DoublePacker: :unpack('')
Пожалуйста, подскажите, что здесь не так?

Подробнее здесь: https://stackoverflow.com/questions/784 ... pi-rate-li

Вернуться в «Php»