Files
thuanle 108458682e
All checks were successful
Build Docker Image / build (arm64) (push) Successful in 54s
Build Docker Image / build (amd64) (push) Successful in 2m13s
Build Docker Image / amend-manifest (push) Successful in 5s
add Metric
2024-11-07 09:08:19 +07:00

39 lines
654 B
Go

package db_updater
import (
"github.com/robfig/cron/v3"
"github.com/rs/zerolog/log"
"thuanle.me/ip-info/configs"
"thuanle.me/ip-info/internal/data"
"time"
)
var DbUpdatedAt time.Time
func StartUpdateDbService() {
c := cron.New()
_, _ = c.AddFunc("@daily", fetchDbs)
c.Start()
fetchDbs()
}
func fetchDbs() {
newFlag := false
for _, url := range configs.GeoDbSourcePaths {
newFlag = download(url) || newFlag
}
if newFlag {
log.Info().Msg("New DB downloaded. Recreating mmdb")
_ = mergeMmdb()
err := data.Ins().Reload()
if err != nil {
log.Err(err).Msg("Failed to reload mmdb")
return
}
DbUpdatedAt = time.Now()
}
}