proxy_latency_cache.go 1.1 KB

1234567891011121314151617181920212223242526272829
  1. package service
  2. import (
  3. "context"
  4. "time"
  5. )
  6. type ProxyLatencyInfo struct {
  7. Success bool `json:"success"`
  8. LatencyMs *int64 `json:"latency_ms,omitempty"`
  9. Message string `json:"message,omitempty"`
  10. IPAddress string `json:"ip_address,omitempty"`
  11. Country string `json:"country,omitempty"`
  12. CountryCode string `json:"country_code,omitempty"`
  13. Region string `json:"region,omitempty"`
  14. City string `json:"city,omitempty"`
  15. QualityStatus string `json:"quality_status,omitempty"`
  16. QualityScore *int `json:"quality_score,omitempty"`
  17. QualityGrade string `json:"quality_grade,omitempty"`
  18. QualitySummary string `json:"quality_summary,omitempty"`
  19. QualityCheckedAt *int64 `json:"quality_checked_at,omitempty"`
  20. QualityCFRay string `json:"quality_cf_ray,omitempty"`
  21. UpdatedAt time.Time `json:"updated_at"`
  22. }
  23. type ProxyLatencyCache interface {
  24. GetProxyLatencies(ctx context.Context, proxyIDs []int64) (map[int64]*ProxyLatencyInfo, error)
  25. SetProxyLatency(ctx context.Context, proxyID int64, info *ProxyLatencyInfo) error
  26. }