|
- package task
-
- import (
- "code.gitea.io/gitea/models"
- "time"
- )
-
- var LimiterMap = map[string]Limiter{
- models.TaskConfigRefreshRateNotCycle: new(NoCycleLimiter),
- models.TaskConfigRefreshRateDaily: new(DailyLimiter),
- }
-
- type Limiter interface {
- GetCurrentPeriod() *models.LimiterPeriod
- }
-
- type NoCycleLimiter struct {
- }
-
- func (l *NoCycleLimiter) GetCurrentPeriod() *models.LimiterPeriod {
- return nil
- }
-
- type DailyLimiter struct {
- }
-
- func (l *DailyLimiter) GetCurrentPeriod() *models.LimiterPeriod {
- t := time.Now()
- startTime := time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location())
- endTime := startTime.Add(24 * time.Hour)
- return &models.LimiterPeriod{
- StartTime: startTime,
- EndTime: endTime,
- }
- }
-
- func GetLimiter(refreshRateype string) Limiter {
- return LimiterMap[refreshRateype]
- }
|