You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

limiter.go 811 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package task
  2. import (
  3. "code.gitea.io/gitea/models"
  4. "time"
  5. )
  6. var LimiterMap = map[string]Limiter{
  7. models.TaskConfigRefreshRateNotCycle: new(NoCycleLimiter),
  8. models.TaskConfigRefreshRateDaily: new(DailyLimiter),
  9. }
  10. type Limiter interface {
  11. GetCurrentPeriod() *models.LimiterPeriod
  12. }
  13. type NoCycleLimiter struct {
  14. }
  15. func (l *NoCycleLimiter) GetCurrentPeriod() *models.LimiterPeriod {
  16. return nil
  17. }
  18. type DailyLimiter struct {
  19. }
  20. func (l *DailyLimiter) GetCurrentPeriod() *models.LimiterPeriod {
  21. t := time.Now()
  22. startTime := time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location())
  23. endTime := startTime.Add(24 * time.Hour)
  24. return &models.LimiterPeriod{
  25. StartTime: startTime,
  26. EndTime: endTime,
  27. }
  28. }
  29. func GetLimiter(refreshRateype string) Limiter {
  30. return LimiterMap[refreshRateype]
  31. }