syncratelimitMiddleware.go 647 B

12345678910111213141516171819202122232425
  1. // Code scaffolded by goctl. Safe to edit.
  2. // goctl 1.10.1
  3. package middleware
  4. import (
  5. "net/http"
  6. "github.com/zeromicro/go-zero/core/stores/redis"
  7. )
  8. type SyncRateLimitMiddleware struct {
  9. rl *RateLimitMiddleware
  10. }
  11. // NewSyncRateLimitMiddleware 权限同步限流:每 IP 每分钟最多 10 次。
  12. func NewSyncRateLimitMiddleware(rds *redis.Redis, keyPrefix string, behindProxy bool) *SyncRateLimitMiddleware {
  13. return &SyncRateLimitMiddleware{
  14. rl: NewRateLimitMiddleware(rds, 60, 10, keyPrefix+":rl:sync", behindProxy),
  15. }
  16. }
  17. func (m *SyncRateLimitMiddleware) Handle(next http.HandlerFunc) http.HandlerFunc {
  18. return m.rl.Handle(next)
  19. }