limiter changes and import changes

This commit is contained in:
Ravi Prasad
2026-05-05 23:05:29 -05:00
parent c66a2d5d06
commit 7578a69988
2 changed files with 17 additions and 7 deletions
+6 -6
View File
@@ -17,7 +17,7 @@ func importPlayerAdvanced(db *gorm.DB) {
log.Printf("advanced import failed for %d: %v", season, err) log.Printf("advanced import failed for %d: %v", season, err)
} }
log.Printf("Advanced import for season: %d", season) log.Printf("Advanced import for season: %d", season)
time.Sleep(1300 * time.Millisecond) time.Sleep(2000 * time.Millisecond)
utils.SleepWithJitter(1000 * time.Millisecond) utils.SleepWithJitter(1000 * time.Millisecond)
} }
} }
@@ -29,7 +29,7 @@ func importPlayerAdvancedPlayoffs(db *gorm.DB) {
log.Printf("advanced import failed for %d: %v", season, err) log.Printf("advanced import failed for %d: %v", season, err)
} }
log.Printf("Advanced Playoffs import for season: %d", season) log.Printf("Advanced Playoffs import for season: %d", season)
time.Sleep(1300 * time.Millisecond) time.Sleep(2000 * time.Millisecond)
utils.SleepWithJitter(1500 * time.Millisecond) utils.SleepWithJitter(1500 * time.Millisecond)
} }
} }
@@ -41,7 +41,7 @@ func importPlayerTotalsScrape(db *gorm.DB) {
log.Printf("scraped totals import failed for %d: %v", season, err) log.Printf("scraped totals import failed for %d: %v", season, err)
} }
log.Printf("Player Totals import for season: %d", season) log.Printf("Player Totals import for season: %d", season)
time.Sleep(1300 * time.Millisecond) time.Sleep(2000 * time.Millisecond)
utils.SleepWithJitter(1250 * time.Millisecond) utils.SleepWithJitter(1250 * time.Millisecond)
} }
} }
@@ -53,7 +53,7 @@ func importPlayerTotalsPlayoffsScrape(db *gorm.DB) {
log.Printf("scraped playoffs import failed for %d: %v", season, err) log.Printf("scraped playoffs import failed for %d: %v", season, err)
} }
log.Printf("Player Playoffs Totals import for season: %d", season) log.Printf("Player Playoffs Totals import for season: %d", season)
time.Sleep(1300 * time.Millisecond) time.Sleep(2000 * time.Millisecond)
utils.SleepWithJitter(1700 * time.Millisecond) utils.SleepWithJitter(1700 * time.Millisecond)
} }
} }
@@ -64,7 +64,7 @@ func importGameSchedules(db *gorm.DB) {
months := []string{ months := []string{
// "september", "october", "november", "december", "january", // "september", "october", "november", "december", "january",
// "february", "march", "april", "may", "june", // "february", "march", "april", "may", "june",
"april", "may", "june", "may", "june",
// "february", "march", "april", "may", "june", // "february", "march", "april", "may", "june",
// "october", "november", "december", // "october", "november", "december",
} }
@@ -79,7 +79,7 @@ func importGameSchedules(db *gorm.DB) {
} }
log.Printf("Game schedule import for %s, %d complete.", month, season) log.Printf("Game schedule import for %s, %d complete.", month, season)
// Respectful delay between requests // Respectful delay between requests
time.Sleep(1400 * time.Millisecond) time.Sleep(2500 * time.Millisecond)
utils.SleepWithJitter(1800 * time.Millisecond) utils.SleepWithJitter(1800 * time.Millisecond)
} }
log.Printf("--- Finished Game Schedule Import for Season: %d ---", season) log.Printf("--- Finished Game Schedule Import for Season: %d ---", season)
+11 -1
View File
@@ -1,6 +1,7 @@
package middleware package middleware
import ( import (
"strings"
"time" "time"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
@@ -9,8 +10,17 @@ import (
func RateLimiter() fiber.Handler { func RateLimiter() fiber.Handler {
return limiter.New(limiter.Config{ return limiter.New(limiter.Config{
Max: 30, Max: 20,
Expiration: 1 * time.Minute, Expiration: 1 * time.Minute,
Next: func(c *fiber.Ctx) bool {
// Skip rate limiting for internal services and infra endpoints
ip := c.IP()
if strings.HasPrefix(ip, "10.") || strings.HasPrefix(ip, "172.") || ip == "127.0.0.1" {
return true
}
path := c.Path()
return path == "/metrics" || strings.HasPrefix(path, "/swagger")
},
KeyGenerator: func(c *fiber.Ctx) string { KeyGenerator: func(c *fiber.Ctx) string {
if ip := c.Get("X-Real-IP"); ip != "" { if ip := c.Get("X-Real-IP"); ip != "" {
return ip return ip