1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package domain
- import (
- "cicv-data-closedloop/common/config/c_log"
- "cicv-data-closedloop/common/entity"
- "cicv-data-closedloop/common/util"
- "os"
- "strings"
- "time"
- )
- func MoveFromDataToCopy(faultTime string, bagDataDir string, sourceBag string, bagCopyDir string) {
- dir := GetCopyDir(bagCopyDir, faultTime)
- util.CreateDir(dir)
- targetBag := strings.Replace(sourceBag, bagDataDir, dir, 1)
- err := os.Rename(sourceBag, targetBag)
- if err != nil {
- return
- }
- c_log.GlobalLogger.Infof("移动bag包 【%v】->【%v】", sourceBag, targetBag)
- }
- func GetCopyDir(bagDataDir string, faultTime string) string {
- return bagDataDir + faultTime + "/"
- }
- // 如果 Copy目录下的包不够,则补充一些
- func SupplyCopyBags(bagDataDir string, bagCopyDir string, currentTimeWindow entity.TimeWindow) {
- // 如果bag包没有达到length,补充几个
- copyBags, _ := util.ListAbsolutePathWithSuffixAndSort(GetCopyDir(bagCopyDir, currentTimeWindow.FaultTime), ".bag")
- copyBagsLength := len(copyBags)
- if copyBagsLength >= currentTimeWindow.Length {
- return
- }
- // 等待差距时间
- gap := currentTimeWindow.Length - copyBagsLength
- time.Sleep(time.Duration(gap) * time.Second)
- // 获取data目录下的包列表
- dataBags, _ := util.ListAbsolutePathWithSuffixAndSort(bagDataDir, ".bag")
- c_log.GlobalLogger.Info("故障 ", currentTimeWindow.FaultTime, "需要从data目录找回 ", gap, " 个 bag 包")
- for _, bag := range dataBags {
- bagTime := util.GetBagTime(bag)
- // 必须在区间内
- if util.TimeCustom1GreaterEqualThanTimeCustom2(bagTime, currentTimeWindow.FaultTime) {
- MoveFromDataToCopy(currentTimeWindow.FaultTime, bagDataDir, bag, bagCopyDir)
- gap = gap - 1
- if gap == 0 {
- break
- }
- }
- }
- }
|