|
@@ -71,38 +71,55 @@ var (
|
|
CloudConfigMutex sync.RWMutex
|
|
CloudConfigMutex sync.RWMutex
|
|
)
|
|
)
|
|
|
|
|
|
-// InitCloudConfig 初始化业务配置
|
|
|
|
|
|
+// 初始化业务配置
|
|
func InitCloudConfig() {
|
|
func InitCloudConfig() {
|
|
c_log.GlobalLogger.Info("初始化OSS配置文件 - 开始。")
|
|
c_log.GlobalLogger.Info("初始化OSS配置文件 - 开始。")
|
|
- // 获取文件的目录
|
|
|
|
- _ = util.CreateParentDir(LocalConfig.CloudConfigLocalPath)
|
|
|
|
- // 3 ------- 获取 yaml 字符串 -------
|
|
|
|
- cloudConfigObjectKey := LocalConfig.OssBasePrefix + LocalConfig.EquipmentNo + "/" + LocalConfig.CloudConfigFilename
|
|
|
|
- // todo 等待时间同步
|
|
|
|
- // 判断文件是否存在。如果不存在则使用默认的
|
|
|
|
- isExist, err := OssBucket.IsObjectExist(cloudConfigObjectKey)
|
|
|
|
- if err != nil {
|
|
|
|
- c_log.GlobalLogger.Errorf("判断配置文件是否存在失败,错误信息为:%v", err)
|
|
|
|
- }
|
|
|
|
- if isExist {
|
|
|
|
- c_log.GlobalLogger.Info("使用机器人自定义配置文件:", cloudConfigObjectKey)
|
|
|
|
- } else {
|
|
|
|
- cloudConfigObjectKey = LocalConfig.OssBasePrefix + LocalConfig.CloudConfigFilename // 默认配置文件路径
|
|
|
|
- c_log.GlobalLogger.Info("使用机器人默认配置文件:", cloudConfigObjectKey)
|
|
|
|
- }
|
|
|
|
- for {
|
|
|
|
- OssMutex.Lock()
|
|
|
|
- err := OssBucket.GetObjectToFile(cloudConfigObjectKey, LocalConfig.CloudConfigLocalPath)
|
|
|
|
- OssMutex.Unlock()
|
|
|
|
|
|
+ var content []byte // cloud.yaml 内容
|
|
|
|
+ var err error
|
|
|
|
+ if LocalConfig.Internet {
|
|
|
|
+ c_log.GlobalLogger.Info("车辆可以访问互联网。")
|
|
|
|
+ // 获取文件的目录
|
|
|
|
+ _ = util.CreateParentDir(LocalConfig.CloudConfigLocalPath)
|
|
|
|
+ // 3 ------- 获取 yaml 字符串 -------
|
|
|
|
+ cloudConfigObjectKey := LocalConfig.OssBasePrefix + LocalConfig.EquipmentNo + "/" + LocalConfig.CloudConfigFilename
|
|
|
|
+ // todo 等待时间同步
|
|
|
|
+ // 判断文件是否存在。如果不存在则使用默认的
|
|
|
|
+ isExist, err := OssBucket.IsObjectExist(cloudConfigObjectKey)
|
|
if err != nil {
|
|
if err != nil {
|
|
- c_log.GlobalLogger.Error("下载oss上的配置文件 "+cloudConfigObjectKey+" 失败。网络授时未完成或者未配置阿里云网络映射到/etc/hosts:", err)
|
|
|
|
- time.Sleep(time.Duration(2) * time.Second)
|
|
|
|
- continue
|
|
|
|
|
|
+ c_log.GlobalLogger.Errorf("判断配置文件是否存在失败,错误信息为:%v", err)
|
|
|
|
+ }
|
|
|
|
+ if isExist {
|
|
|
|
+ c_log.GlobalLogger.Info("使用机器人自定义配置文件:", cloudConfigObjectKey)
|
|
|
|
+ } else {
|
|
|
|
+ cloudConfigObjectKey = LocalConfig.OssBasePrefix + LocalConfig.CloudConfigFilename // 默认配置文件路径
|
|
|
|
+ c_log.GlobalLogger.Info("使用默认配置文件:", cloudConfigObjectKey)
|
|
|
|
+ }
|
|
|
|
+ for {
|
|
|
|
+ OssMutex.Lock()
|
|
|
|
+ err := OssBucket.GetObjectToFile(cloudConfigObjectKey, LocalConfig.CloudConfigLocalPath)
|
|
|
|
+ OssMutex.Unlock()
|
|
|
|
+ if err != nil {
|
|
|
|
+ c_log.GlobalLogger.Error("下载oss上的配置文件 "+cloudConfigObjectKey+" 失败。网络授时未完成或者未配置阿里云网络映射到/etc/hosts:", err)
|
|
|
|
+ time.Sleep(time.Duration(2) * time.Second)
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
|
|
+ break
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ c_log.GlobalLogger.Infof("车辆不可以访问互联网,请提前将配置文件放到【%v】。", LocalConfig.CloudConfigLocalPath)
|
|
|
|
+ for {
|
|
|
|
+ time.Sleep(time.Duration(1) * time.Second)
|
|
|
|
+ if util.FileExists(LocalConfig.CloudConfigLocalPath) {
|
|
|
|
+ c_log.GlobalLogger.Infof("配置文件【%v】已准备好。", LocalConfig.CloudConfigLocalPath)
|
|
|
|
+ break
|
|
|
|
+ } else {
|
|
|
|
+ c_log.GlobalLogger.Infof("配置文件【%v】没有准备好。", LocalConfig.CloudConfigLocalPath)
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- break
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- content, err := os.ReadFile(LocalConfig.CloudConfigLocalPath)
|
|
|
|
|
|
+ content, err = os.ReadFile(LocalConfig.CloudConfigLocalPath)
|
|
if err != nil {
|
|
if err != nil {
|
|
c_log.GlobalLogger.Error("程序退出。配置文件 ", LocalConfig.CloudConfigLocalPath, " 读取失败:", err)
|
|
c_log.GlobalLogger.Error("程序退出。配置文件 ", LocalConfig.CloudConfigLocalPath, " 读取失败:", err)
|
|
os.Exit(-1)
|
|
os.Exit(-1)
|