限制每个用户在 Rails 中的函数调用速率
有人知道我该怎么做吗?在网上查找信息非常困难。我发现的最好的是 curbit it gem,但我只能想到如何在应用程序方面实现该功能。
Anyone have any idea how I might go about this? Having a pretty hard time finding information online. Best I found is the curbit it gem but I can only think of how to implement that application-wise.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
它可以通过以下方式处理:1) 网络服务器 2) 机架应用程序。一切都取决于你需要什么。我们使用内置的nginx功能来限制API请求:
另一个解决方案是rack-throttle。
这是 Rack 中间件,为 Rack 应用程序的传入 HTTP 请求提供速率限制逻辑。您可以将 Rack::Throttle 与任何基于 Rack 的 Ruby Web 框架一起使用,包括 Ruby on Rails 3.0 和 Sinatra。
It can be handled by: 1) webserver 2) rack-application. All depend on what you need. We use built-in nginx functionality to limit API requests:
The another solution is rack-throttle.
This is Rack middleware that provides logic for rate-limiting incoming HTTP requests to Rack applications. You can use Rack::Throttle with any Ruby web framework based on Rack, including with Ruby on Rails 3.0 and with Sinatra.
以下是如何使用 Redis 和时间戳来实现它的示例。您可以将此模块包含在 user.rb 中,然后可以调用
user.allowed_to?(:reveal_email)
Here is an example of how it can be implemented using Redis and timestamps. You'd include this module in user.rb and then you can call
user.allowed_to?(:reveal_email)