12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- package domain
- import (
- "cicv-data-closedloop/common/config/c_log"
- "cicv-data-closedloop/common/entity"
- "cicv-data-closedloop/common/util"
- "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)
- var copyCommand []string
- copyCommand = append(copyCommand, sourceBag)
- copyCommand = append(copyCommand, targetBag)
- _, _, _ = util.Execute("mv", copyCommand...)
- }
- func GetCopyDir(bagDataDir string, faultTime string) string {
- return bagDataDir + faultTime + "/"
- }
- // SupplyCopyBags 如果 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 {
- time.Sleep(time.Duration(copyBagsLength) * time.Second)
- dataBags, _ := util.ListAbsolutePathWithSuffixAndSort(bagDataDir, ".bag")
- gap := currentTimeWindow.Length - copyBagsLength
- c_log.GlobalLogger.Info("故障 ", currentTimeWindow.FaultTime, "需要补充 ", 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
- }
- }
- }
- }
- }
|