in experiments/client_traffic_ctrl_tasks.go [76:119]
func (e *ExperimentClient) GetTrafficControlTargetData(env, sceneName string, currentTimestamp int64) map[string]model.TrafficControlTarget {
if currentTimestamp == 0 {
currentTimestamp = time.Now().Unix()
}
trafficControlTargets := make(map[string]model.TrafficControlTarget)
var data = make(map[string][]model.TrafficControlTask, 0)
if env == common.Environment_Prepub_Desc {
data = e.prepubSceneTrafficControlTaskData
} else if env == common.Environment_Product_Desc {
data = e.productSceneTrafficControlTaskData
} else {
return nil
}
for scene, sceneTraffics := range data {
if sceneName != "" && sceneName != scene {
continue
}
for _, task := range sceneTraffics {
for i, target := range task.TrafficControlTargets {
if task.ExecutionTime != "Permanent" {
startTime, _ := time.Parse(time.RFC3339, target.StartTime)
endTime, _ := time.Parse(time.RFC3339, target.EndTime)
if target.Status == common.TrafficControlTargets_Status_Open && startTime.Unix() < currentTimestamp && currentTimestamp <= endTime.Unix() {
trafficControlTargets[target.TrafficControlTargetId] = task.TrafficControlTargets[i]
}
} else {
if target.Status == common.TrafficControlTargets_Status_Open {
trafficControlTargets[target.TrafficControlTargetId] = task.TrafficControlTargets[i]
}
}
}
}
}
return trafficControlTargets
}