name: DurationLimiter class_comment: null dependencies: - name: LimiterTimeoutException type: class source: Illuminate\Contracts\Redis\LimiterTimeoutException - name: Sleep type: class source: Illuminate\Support\Sleep properties: - name: redis visibility: private comment: '# * The Redis factory implementation. # * # * @var \Illuminate\Redis\Connections\Connection' - name: name visibility: private comment: '# * The unique name of the lock. # * # * @var string' - name: maxLocks visibility: private comment: '# * The allowed number of concurrent tasks. # * # * @var int' - name: decay visibility: private comment: '# * The number of seconds a slot should be maintained. # * # * @var int' - name: decaysAt visibility: public comment: '# * The timestamp of the end of the current duration. # * # * @var int' - name: remaining visibility: public comment: '# * The number of remaining slots. # * # * @var int' methods: - name: __construct visibility: public parameters: - name: redis - name: name - name: maxLocks - name: decay comment: "# * The Redis factory implementation.\n# *\n# * @var \\Illuminate\\Redis\\\ Connections\\Connection\n# */\n# private $redis;\n# \n# /**\n# * The unique name\ \ of the lock.\n# *\n# * @var string\n# */\n# private $name;\n# \n# /**\n# * The\ \ allowed number of concurrent tasks.\n# *\n# * @var int\n# */\n# private $maxLocks;\n\ # \n# /**\n# * The number of seconds a slot should be maintained.\n# *\n# * @var\ \ int\n# */\n# private $decay;\n# \n# /**\n# * The timestamp of the end of the\ \ current duration.\n# *\n# * @var int\n# */\n# public $decaysAt;\n# \n# /**\n\ # * The number of remaining slots.\n# *\n# * @var int\n# */\n# public $remaining;\n\ # \n# /**\n# * Create a new duration limiter instance.\n# *\n# * @param \\Illuminate\\\ Redis\\Connections\\Connection $redis\n# * @param string $name\n# * @param\ \ int $maxLocks\n# * @param int $decay\n# * @return void" - name: block visibility: public parameters: - name: timeout - name: callback default: 'null' - name: sleep default: '750' comment: '# * Attempt to acquire the lock for the given number of seconds. # * # * @param int $timeout # * @param callable|null $callback # * @param int $sleep # * @return mixed # * # * @throws \Illuminate\Contracts\Redis\LimiterTimeoutException' - name: acquire visibility: public parameters: [] comment: '# * Attempt to acquire the lock. # * # * @return bool' - name: tooManyAttempts visibility: public parameters: [] comment: '# * Determine if the key has been "accessed" too many times. # * # * @return bool' - name: clear visibility: public parameters: [] comment: '# * Clear the limiter. # * # * @return void' - name: luaScript visibility: protected parameters: [] comment: '# * Get the Lua script for acquiring a lock. # * # * KEYS[1] - The limiter name # * ARGV[1] - Current time in microseconds # * ARGV[2] - Current time in seconds # * ARGV[3] - Duration of the bucket # * ARGV[4] - Allowed number of tasks # * # * @return string' - name: tooManyAttemptsLuaScript visibility: protected parameters: [] comment: '# * Get the Lua script to determine if the key has been "accessed" too many times. # * # * KEYS[1] - The limiter name # * ARGV[1] - Current time in microseconds # * ARGV[2] - Current time in seconds # * ARGV[3] - Duration of the bucket # * ARGV[4] - Allowed number of tasks # * # * @return string' traits: - Illuminate\Contracts\Redis\LimiterTimeoutException - Illuminate\Support\Sleep interfaces: []