Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
setExpiresAt example
if
(
$tokens
>
$limit
)
{
throw
new
\
InvalidArgumentException
(
sprintf
(
'Cannot reserve more tokens (%d) than the size of the rate limiter (%d).',
$tokens
,
$limit
)
)
;
}
$attempts
=
$backoff
->
getAttempts
(
)
;
if
(
$backoff
->
shouldThrottle
(
$attempts
+
$tokens
,
$now
)
)
{
return
new
RateLimit
(
$backoff
->
getAvailableAttempts
(
$now
)
,
$backoff
->
getRetryAfter
(
)
, false,
$backoff
->
getCurrentLimit
(
$now
)
)
;
}
$backoff
->
setAttempts
(
$attempts
+
$tokens
)
;
$backoff
->
setTimer
(
$now
)
;
$backoff
->
setExpiresAt
(
$this
->reset
)
;
$this
->storage->
save
(
$backoff
)
;
return
new
RateLimit
(
$backoff
->
getAvailableAttempts
(
$now
)
,
$backoff
->
getRetryAfter
(
)
, true,
$backoff
->
getCurrentLimit
(
$now
)
)
;
}
finally
{
$this
->lock?->
release
(
)
;
}
}
}