Рецепты
Ограничение через Rate Limit
Ограничьте число допущенных Command для группы и скользящего окна без ожидания квоты.
v0.1.0-dev.2Средний уровеньusecase_forge
Ограничение через Rate Limit
Rate Limit нужен, когда ресурс допускает ограниченное число Command в скользящем временном окне. Лишние Command отклоняются сразу и не ждут освобождения квоты.
dart
registerCommand<SendVerificationCode>(
_sendCode,
instructions: UseCaseInstructionOverrides(
input: UseCaseInputInstructionOverrides(
rateLimit: UseCaseRateLimitInstructions(
maxExecutions: 3,
duration: const Duration(minutes: 10),
),
),
),
);
Задайте executionKey, например идентификатор аккаунта. Для каждой пары из точного типа Command и ключа действует своё окно. Квоту расходуют только Execution Entry, прошедшие предыдущие Input Instructions.
Обработайте границу
maxExecutions и duration должны быть положительными. Ошибка конфигурации возникает при регистрации. Отклонённый Command приходит в onCommandRejected с причиной rateLimitExceeded и не попадает в историю.