Rate Limit Strings¶
Format¶
Rate limit strings follow the format: {limit}/{unit}
@limiter.limit("100/minute")
@limiter.limit("10/second")
@limiter.limit("1000/hour")
@limiter.limit("10000/day")
Units¶
| Unit | Abbreviation | Duration |
|---|---|---|
| second | s | 1 second |
| minute | m | 60 seconds |
| hour | h | 3600 seconds |
| day | d | 86400 seconds |
Examples¶
# Requests per second
@limiter.limit("10/second")
@limiter.limit("10/s")
# Requests per minute
@limiter.limit("100/minute")
@limiter.limit("100/m")
# Requests per hour
@limiter.limit("1000/hour")
@limiter.limit("1000/h")
# Requests per day
@limiter.limit("10000/day")
@limiter.limit("10000/d")
Parsing¶
Rate limit strings are parsed by parse_rule_string():
from drogue.core.rules.rule import parse_rule_string
rule = parse_rule_string("100/minute")
# rule.limit = 100
# rule.window = 60.0
Default Limits¶
Default limits apply to all routes:
Multiple Limits¶
You can apply multiple limits to a single route: