Browse Source

定时任务更新统计数据

gitlink
Sydonian 1 year ago
parent
commit
4e2e2a3a52
2 changed files with 17 additions and 2 deletions
  1. +5
    -2
      common/pkgs/db/object_access_stat.go
  2. +12
    -0
      scanner/internal/event/update_package_access_stat_amount.go

+ 5
- 2
common/pkgs/db/object_access_stat.go View File

@@ -35,8 +35,11 @@ func (*ObjectAccessStatDB) BatchAddCounter(ctx SQLContext, entries []coormq.AddA
return err return err
} }


func (*ObjectAccessStatDB) BatchUpdateAmount(ctx SQLContext, objIDs []cdssdk.ObjectID, historyWeight float64) error {
stmt, args, err := sqlx.In("update ObjectAccessStat set Amount=Amount*?+Counter*(1-?), Counter = 0 where ObjectID in (?)", historyWeight, historyWeight, objIDs)
func (*ObjectAccessStatDB) BatchUpdateAmountInPackage(ctx SQLContext, pkgIDs []cdssdk.PackageID, historyWeight float64) error {
stmt, args, err := sqlx.In("update ObjectAccessStat inner join Object"+
" on ObjectAccessStat.ObjectID = Object.ObjectID"+
" set Amount=Amount*?+Counter*(1-?), Counter = 0"+
" where PackageID in (?)", historyWeight, historyWeight, pkgIDs)
if err != nil { if err != nil {
return err return err
} }


+ 12
- 0
scanner/internal/event/update_package_access_stat_amount.go View File

@@ -54,12 +54,24 @@ func (t *UpdatePackageAccessStatAmount) Execute(execCtx ExecuteContext) {
return return
} }


err = execCtx.Args.DB.ObjectAccessStat().UpdateAllAmount(execCtx.Args.DB.SQLCtx(), config.Cfg().AccessStatHistoryAmount)
if err != nil {
log.Warnf("update all object access stat amount: %v", err)
return
}

} else { } else {
err := execCtx.Args.DB.PackageAccessStat().BatchUpdateAmount(execCtx.Args.DB.SQLCtx(), t.PackageIDs, config.Cfg().AccessStatHistoryAmount) err := execCtx.Args.DB.PackageAccessStat().BatchUpdateAmount(execCtx.Args.DB.SQLCtx(), t.PackageIDs, config.Cfg().AccessStatHistoryAmount)
if err != nil { if err != nil {
log.Warnf("batch update package access stat amount: %v", err) log.Warnf("batch update package access stat amount: %v", err)
return return
} }

err = execCtx.Args.DB.ObjectAccessStat().BatchUpdateAmountInPackage(execCtx.Args.DB.SQLCtx(), t.PackageIDs, config.Cfg().AccessStatHistoryAmount)
if err != nil {
log.Warnf("batch update object access stat amount in package: %v", err)
return
}
} }
} }




Loading…
Cancel
Save