liuxiulin vor 19 Stunden
Ursprung
Commit
679ea95632

+ 2 - 2
pkg/scene/scene.go

@@ -56,11 +56,11 @@ func NewSceneManager(host string, port int) *Manager {
 }
 
 func (a *Manager) SaveScene(info *Info) error {
-	_, err := a.redisClient.Do("SET", info.Key, info.Config)
+	_, err := a.redisClient.DoVar("SET", info.Key, info.Config)
 	if err != nil {
 		return err
 	}
-	_, err = a.redisClient.Do(info.Key, dataExpires)
+	_, err = a.redisClient.Do("EXPIRE", info.Key, dataExpires)
 	if err != nil {
 		return err
 	}

+ 2 - 1
services/scene-service/internal/service/manager/device_status.go

@@ -52,7 +52,7 @@ func (d *DeviceSceneService) Add(config string) error {
 		return errors.New("天气监控任务配置错误:判断条件不能为空")
 	}
 	// 初始化Ticker和停止通道
-	c.ticker = time.NewTicker(time.Duration(c.Interval) * time.Minute)
+	c.ticker = time.NewTicker(5 * time.Minute)
 	c.stopChan = make(chan struct{})
 
 	// 启动监控协程
@@ -138,6 +138,7 @@ func (d *DeviceSceneService) monitorTask(config DeviceSceneConfig) {
 func (d *DeviceSceneService) checkDeviceCondition(config DeviceSceneConfig) (bool, error) {
 	var results []bool
 	for _, v := range config.Conditions {
+		fmt.Printf("检查设备状态:%s", v.DeviceId)
 		var args rpcs.ArgsGetStatus
 		args.Key = fmt.Sprintf("device:%s:status:%s%s", v.DeviceType, v.DeviceId, v.SubDeviceId)
 		var reply rpcs.ReplyStatus

+ 8 - 8
services/scene-service/internal/service/scene.go

@@ -87,14 +87,14 @@ func (m *SceneService) SubmitAction(args rpcs.ArgsSubmitSceneAction, reply *rpcs
 	case "remove":
 		err = srv.Remove(scene.Config)
 		if err != nil {
-			server.Log.Errorf("delete scene-manager error: Id: %s, error: %v", scene.Id, err)
+			server.Log.Errorf("delete scene error: Id: %s, error: %v", scene.Id, err)
 		}
 		m.scenes.Remove(scene.Id)
 		return m.delSceneRedis(scene)
 	case "update":
 		err = srv.Update(scene.Config)
 		if err != nil {
-			server.Log.Errorf("update scene-manager error: Id: %s, error: %v", scene.Id, err)
+			server.Log.Errorf("update scene error: Id: %s, error: %v", scene.Id, err)
 			return err
 		}
 		m.scenes.Set(scene.Id, scene)
@@ -102,7 +102,7 @@ func (m *SceneService) SubmitAction(args rpcs.ArgsSubmitSceneAction, reply *rpcs
 	case "start":
 		err = srv.Start(scene.Config)
 		if err != nil {
-			server.Log.Errorf("start scene-manager error: Id: %s, error: %v", scene.Id, err)
+			server.Log.Errorf("start scene error: Id: %s, error: %v", scene.Id, err)
 			return err
 		}
 		scene.Status = 1
@@ -111,7 +111,7 @@ func (m *SceneService) SubmitAction(args rpcs.ArgsSubmitSceneAction, reply *rpcs
 	case "stop":
 		err = srv.Stop(scene.Config)
 		if err != nil {
-			server.Log.Errorf("stop scene-manager error: Id: %s, error: %v", scene.Id, err)
+			server.Log.Errorf("stop scene error: Id: %s, error: %v", scene.Id, err)
 			return err
 		}
 		scene.Status = 0
@@ -135,27 +135,27 @@ func (m *SceneService) doAction(action string) error {
 
 func (m *SceneService) saveSceneRedis(scene SceneInfo) error {
 	sceneArgs := rpcs.ArgsScene{
-		Key:     fmt.Sprintf("scene-manager:%s:%s", scene.SceneType, scene.Id),
+		Key:     fmt.Sprintf("scene:%s:%s", scene.SceneType, scene.Id),
 		SceneId: scene.Id,
 		Config:  scene.Config,
 	}
 	sceneReply := rpcs.ReplyGetDeviceOnlineStatus{}
 	err := server.RPCCallByName(nil, rpcs.DeviceManagerName, "DeviceManager.SaveScene", sceneArgs, &sceneReply)
 	if err != nil {
-		server.Log.Errorf("save scene-manager error: Id: %s, error: %v", scene.Id, err)
+		server.Log.Errorf("save scene error: Id: %s, error: %v", scene.Id, err)
 	}
 	return err
 }
 
 func (m *SceneService) delSceneRedis(scene SceneInfo) error {
 	sceneArgs := rpcs.ArgsScene{
-		Key:    fmt.Sprintf("scene-manager:%s:%s", scene.SceneType, scene.Id),
+		Key:    fmt.Sprintf("scene:%s:%s", scene.SceneType, scene.Id),
 		Config: scene.Config,
 	}
 	sceneReply := rpcs.ReplyGetDeviceOnlineStatus{}
 	err := server.RPCCallByName(nil, rpcs.DeviceManagerName, "DeviceManager.DeleteScene", sceneArgs, &sceneReply)
 	if err != nil {
-		server.Log.Errorf("save scene-manager error: Id: %s, error: %v", scene.Id, err)
+		server.Log.Errorf("del scene error: Id: %s, error: %v", scene.Id, err)
 	}
 	return err
 }