Skip to content

feat: dynamic rate limiter#97

Merged
s-aga-r merged 7 commits into
frappe:developfrom
s-aga-r:dynamic-rate-limit
Feb 11, 2025
Merged

feat: dynamic rate limiter#97
s-aga-r merged 7 commits into
frappe:developfrom
s-aga-r:dynamic-rate-limit

Conversation

@s-aga-r
Copy link
Copy Markdown
Collaborator

@s-aga-r s-aga-r commented Feb 10, 2025

Wrapper over the frappe.rate_limiter.rate_limit to dynamically apply rate limits based on Rate Limit document(s).

image

For 1K request:

@rate_limit(limit=10, seconds=60)

CPU times: user 1.44 s, sys: 180 ms, total: 1.62 s
Wall time: 8 s
@dynamic_rate_limit()

CPU times: user 1.51 s, sys: 203 ms, total: 1.71 s
Wall time: 8.28 s

After: frappe/frappe#31209

@s-aga-r
Copy link
Copy Markdown
Collaborator Author

s-aga-r commented Feb 10, 2025

ToDo:

  • Composite unique key (method_path, key, ip_based and seconds)
  • Create Rate Limit docs on app install.
  • @rate_limit() -> @dynamic_rate_limit()

@s-aga-r s-aga-r marked this pull request as ready for review February 11, 2025 10:18
@s-aga-r s-aga-r merged commit a6ab436 into frappe:develop Feb 11, 2025
@s-aga-r s-aga-r deleted the dynamic-rate-limit branch February 12, 2025 15:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant