ThrottlesExceptionsWithRedis
class ThrottlesExceptionsWithRedis extends ThrottlesExceptions (View source)
Traits
Properties
protected string | $key | The developer specified key that the rate limiter should use. |
from ThrottlesExceptions |
protected bool | $byJob | Indicates whether the throttle key should use the job's UUID. |
from ThrottlesExceptions |
protected int | $maxAttempts | The maximum number of attempts allowed before rate limiting applies. |
from ThrottlesExceptions |
protected int | $decaySeconds | The number of seconds until the maximum attempts are reset. |
from ThrottlesExceptions |
protected int | $retryAfterMinutes | The number of minutes to wait before retrying the job after an exception. |
from ThrottlesExceptions |
protected callable | $reportCallback | The callback that determines if the exception should be reported. |
from ThrottlesExceptions |
protected callable | $whenCallback | The callback that determines if rate limiting should apply. |
from ThrottlesExceptions |
protected string | $prefix | The prefix of the rate limiter key. |
from ThrottlesExceptions |
protected DurationLimiter | $limiter | The rate limiter instance. |
|
protected Factory | $redis | The Redis factory implementation. |
Methods
Create a new middleware instance.
Process the job.
Specify a callback that should determine if rate limiting behavior should apply.
Specify the number of minutes a job should be delayed when it is released (before it has reached its max exceptions).
Get the cache key associated for the rate limiter.
Set the value that the rate limiter should be keyed by.
Report exceptions and optionally specify a callback that determines if the exception should be reported.
Get the number of seconds that should elapse before the job is retried.
Get the number of seconds until the given DateTime.
If the given value is an interval, convert it to a DateTime instance.
Given a start time, format the total run time for human readability.
Details
void
__construct(int $maxAttempts = 10, int $decaySeconds = 600)
Create a new middleware instance.
mixed
handle(mixed $job, callable $next)
Process the job.
$this
when(callable $callback)
Specify a callback that should determine if rate limiting behavior should apply.
$this
withPrefix(string $prefix)
Set the prefix of the rate limiter key.
$this
backoff(int $backoff)
Specify the number of minutes a job should be delayed when it is released (before it has reached its max exceptions).
protected string
getKey(mixed $job)
Get the cache key associated for the rate limiter.
$this
by(string $key)
Set the value that the rate limiter should be keyed by.
$this
byJob()
Indicate that the throttle key should use the job's UUID.
$this
report(callable|null $callback = null)
Report exceptions and optionally specify a callback that determines if the exception should be reported.
protected int
getTimeUntilNextRetry(string $key)
Get the number of seconds that should elapse before the job is retried.
protected int
secondsUntil(DateTimeInterface|DateInterval|int $delay)
Get the number of seconds until the given DateTime.
protected int
availableAt(DateTimeInterface|DateInterval|int $delay = 0)
Get the "available at" UNIX timestamp.
protected DateTimeInterface|int
parseDateInterval(DateTimeInterface|DateInterval|int $delay)
If the given value is an interval, convert it to a DateTime instance.
protected int
currentTime()
Get the current system time as a UNIX timestamp.
protected string
runTimeForHumans(float $startTime, float $endTime = null)
Given a start time, format the total run time for human readability.