feat: image variants cache panel
This commit is contained in:
1 parent
951fef18ba
commit
d768668014
53 files changed
+5809
-46
No files matched your search
@@ -0,0 +1,76 @@
|
||||
package image
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"time"
|
||||
)
|
||||
|
||||
var ErrCachePurgeScope = errors.New("cache purge scope is not valid")
|
||||
|
||||
type CachePurgeScope string
|
||||
|
||||
const (
|
||||
CacheScopeAll CachePurgeScope = "all"
|
||||
CacheScopeUnused CachePurgeScope = "unused"
|
||||
CacheScopeVariant CachePurgeScope = "variant"
|
||||
CacheScopeImage CachePurgeScope = "image"
|
||||
)
|
||||
|
||||
const (
|
||||
UnusedVariantDays = 30
|
||||
RejectionWindowDays = 7
|
||||
TopImagesLimit = 10
|
||||
CachePurgeBatchSize = 500
|
||||
RejectionDayLayout = "2006-01-02"
|
||||
)
|
||||
|
||||
func UnusedCutoff(now time.Time) time.Time {
|
||||
return now.UTC().AddDate(0, 0, -UnusedVariantDays)
|
||||
}
|
||||
|
||||
func RejectionDay(at time.Time) time.Time {
|
||||
utc := at.UTC()
|
||||
return time.Date(utc.Year(), utc.Month(), utc.Day(), 0, 0, 0, 0, time.UTC)
|
||||
}
|
||||
|
||||
func RejectionWindowStart(now time.Time) time.Time {
|
||||
return RejectionDay(now).AddDate(0, 0, -(RejectionWindowDays - 1))
|
||||
}
|
||||
|
||||
func RejectionPruneBefore(now time.Time) time.Time {
|
||||
return RejectionDay(now).AddDate(0, 0, -RejectionWindowDays)
|
||||
}
|
||||
|
||||
type UnusedFilter struct {
|
||||
VariantNames []string
|
||||
Cutoff time.Time
|
||||
}
|
||||
|
||||
type VariantFileFilter struct {
|
||||
VariantName string
|
||||
SourceName string
|
||||
Unused *UnusedFilter
|
||||
}
|
||||
|
||||
type SourceTotals struct {
|
||||
SourceName string
|
||||
Files int
|
||||
Bytes int64
|
||||
}
|
||||
|
||||
type VariantHit struct {
|
||||
VariantName string
|
||||
SourceName string
|
||||
At time.Time
|
||||
}
|
||||
|
||||
type RejectionCount struct {
|
||||
Day time.Time
|
||||
Count int
|
||||
}
|
||||
|
||||
type VariantUsageBatch struct {
|
||||
Hits []VariantHit
|
||||
Rejections []RejectionCount
|
||||
PruneBefore time.Time
|
||||
}
|
||||
Reference in new issue
Block a user