Browse Source

delete all daily

tags/v1.21.12.1
lewis 4 years ago
parent
commit
e64b28f9e9
2 changed files with 61 additions and 0 deletions
  1. +22
    -0
      models/repo_statistic.go
  2. +39
    -0
      routers/repo/repo_statistic.go

+ 22
- 0
models/repo_statistic.go View File

@@ -1,6 +1,7 @@
package models

import (
"fmt"
"time"

"code.gitea.io/gitea/modules/timeutil"
@@ -35,3 +36,24 @@ type RepoStatistic struct {
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
}


func DeleteRepoStatDaily(date time.Time) error {
sess := xStatistic.NewSession()
defer sess.Close()
if err := sess.Begin(); err != nil {
return fmt.Errorf("Begin: %v", err)
}

if _, err := sess.Where("date = ?", date).Delete(&RepoStatistic{}); err != nil {
return fmt.Errorf("Delete: %v", err)
}

if err := sess.Commit(); err != nil {
sess.Close()
return fmt.Errorf("Commit: %v", err)
}

sess.Close()
return nil
}

+ 39
- 0
routers/repo/repo_statistic.go View File

@@ -0,0 +1,39 @@
package repo

import (
"time"

"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/log"
)

//auto daily or manually
func RepoStatisticDaily() {
//delete all yesterday
log.Info("", time.Now())
yesterday := time.Now().AddDate(0, 0, -1)
log.Info("", yesterday)
if err := models.DeleteRepoStatDaily(yesterday); err != nil {
log.Error("DeleteRepoStatDaily failed: %v", err.Error())
return
}

repos, err := models.GetAllRepositories()
if err != nil {
log.Error("GetAllRepositories failed: %v", err.Error())
return
}

for _, repo := range repos {
log.Info("start statistic: %s", repo.Name)
repoStat, err := models.GetRepoKPIStats(repo)
if err != nil {
log.Error("GetRepoKPIStats failed: %s", repo.Name)
log.Error("failed statistic: %s", repo.Name)
continue
}
log.Info("", repoStat.DevelopAge)
log.Info("finish statistic: %s", repo.Name)
}

}

Loading…
Cancel
Save