diff --git a/apps/device/services/product.go b/apps/device/services/product.go index 09c40ed..3da253b 100644 --- a/apps/device/services/product.go +++ b/apps/device/services/product.go @@ -5,10 +5,7 @@ import ( "github.com/PandaXGO/PandaKit/biz" "log" "pandax/apps/device/entity" - ruleEntity "pandax/apps/rule/entity" - ruleService "pandax/apps/rule/services" "pandax/pkg/global" - "time" ) type ( @@ -41,23 +38,10 @@ func (m *productModelImpl) Insert(data entity.Product) *entity.Product { tx.Rollback() biz.ErrIsNil(err, "添加设备失败,超级表创建失败") } - setProductRule(&data) tx.Commit() return &data } -// 向redis中添加产品对应的规则链 -func setProductRule(data *entity.Product) { - var rule *ruleEntity.RuleChain - if data.RuleChainId == "" { - rule = ruleService.RuleChainModelDao.FindOneByRoot() - } else { - rule = ruleService.RuleChainModelDao.FindOne(data.RuleChainId) - } - data.RuleChainId = rule.Id - biz.ErrIsNil(global.RedisDb.Set(data.Id, rule.RuleDataJson, time.Hour*24*365), "Redis 存储失败") -} - func (m *productModelImpl) FindOne(id string) *entity.ProductRes { resData := new(entity.ProductRes) db := global.Db.Table(m.table).Where("id = ?", id) @@ -141,7 +125,6 @@ func (m *productModelImpl) FindList(data entity.Product) *[]entity.ProductRes { } func (m *productModelImpl) Update(data entity.Product) *entity.Product { - setProductRule(&data) // go的一些默认值 int 0 bool false 保存失败需要先转成map err := global.Db.Table(m.table).Where("id = ?", data.Id).Updates(data).Error log.Println("update", err) diff --git a/apps/rule/services/rulechain.go b/apps/rule/services/rulechain.go index 2f087eb..5af5a5b 100644 --- a/apps/rule/services/rulechain.go +++ b/apps/rule/services/rulechain.go @@ -8,7 +8,6 @@ package services import ( "github.com/PandaXGO/PandaKit/biz" - "log" "pandax/apps/rule/entity" "pandax/pkg/events" "pandax/pkg/global" @@ -38,7 +37,6 @@ var RuleChainModelDao RuleChainModel = &ruleChainModelImpl{ func (m *ruleChainModelImpl) Insert(data entity.RuleChain) *entity.RuleChain { err := global.Db.Table(m.table).Create(&data).Error - log.Println(err) biz.ErrIsNil(err, "添加规则链失败") return &data } diff --git a/fatal.log b/fatal.log index 4ad1f93..dbf1342 100644 --- a/fatal.log +++ b/fatal.log @@ -99,3 +99,120 @@ main.main() 2023-09-08 17:26:01-------------------------------- 2023-09-08 17:30:49-------------------------------- + +2023-09-13 08:48:08-------------------------------- + +2023-09-13 08:52:52-------------------------------- + +2023-09-13 09:04:51-------------------------------- + +2023-09-13 09:10:21-------------------------------- + +2023-09-13 08:48:08-------------------------------- + +2023-09-13 08:52:52-------------------------------- + +2023-09-13 09:04:51-------------------------------- + +2023-09-13 09:10:21-------------------------------- + +2023-09-13 09:14:56-------------------------------- + +2023-09-13 08:48:08-------------------------------- + +2023-09-13 08:52:52-------------------------------- + +2023-09-13 09:04:51-------------------------------- + +2023-09-13 09:10:21-------------------------------- + +2023-09-13 08:48:08-------------------------------- + +2023-09-13 08:52:52-------------------------------- + +2023-09-13 09:04:51-------------------------------- + +2023-09-13 09:10:21-------------------------------- + +2023-09-13 09:14:56-------------------------------- + +2023-09-13 17:17:59-------------------------------- +panic: runtime error: invalid memory address or nil pointer dereference +[signal 0xc0000005 code=0x0 addr=0x10 pc=0x1dc3346] + +goroutine 187 [running]: +pandax/iothub.(*HookService).handleOne.func1() + D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work.go:49 +0x266 +created by pandax/iothub.(*HookService).handleOne + D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work.go:33 +0xa5 + +2023-09-13 17:21:46-------------------------------- + +2023-09-13 17:23:20-------------------------------- + +2023-09-13 17:25:58-------------------------------- + +2023-09-13 17:27:25-------------------------------- + +2023-09-13 17:28:07-------------------------------- + +2023-09-13 17:28:58-------------------------------- + +2023-09-13 17:30:52-------------------------------- +panic: interface conversion: interface {} is nil, not []interface {} + +goroutine 138 [running]: +pandax/pkg/rule_engine/manifest.New({0xc0012ae010, 0x4, 0x8}) + D:/workspace/go/project/PandaX/PandaX/pkg/rule_engine/manifest/manifest.go:35 +0xa95 +pandax/pkg/rule_engine.NewRuleChainInstance({0xc0012ae010, 0x4, 0x8}) + D:/workspace/go/project/PandaX/PandaX/pkg/rule_engine/instance.go:19 +0x67 +pandax/iothub.(*HookService).handleOne.func1() + D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work.go:57 +0x2fe +created by pandax/iothub.(*HookService).handleOne + D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work.go:34 +0xa5 + +2023-09-13 17:33:28-------------------------------- + +2023-09-13 17:35:28-------------------------------- + +2023-09-13 17:41:15-------------------------------- +panic: interface conversion: interface {} is nil, not string + +goroutine 147 [running]: +pandax/pkg/rule_engine/nodes.(*createAlarmNode).Handle(0xc0003a6ee0, 0xc001083560) + D:/workspace/go/project/PandaX/PandaX/pkg/rule_engine/nodes/action_create_alarm_node.go:39 +0x71b +pandax/pkg/rule_engine/nodes.(*scriptFilterNode).Handle(0xc0010834a0, 0xc001083560) + D:/workspace/go/project/PandaX/PandaX/pkg/rule_engine/nodes/filter_script_node.go:35 +0x2cb +pandax/pkg/rule_engine/nodes.(*saveTimeSeriesNode).Handle(0xc0010af8b0, 0xc001083560) + D:/workspace/go/project/PandaX/PandaX/pkg/rule_engine/nodes/action_save_timeseries_node.go:49 +0x319 +pandax/pkg/rule_engine/nodes.(*messageTypeSwitchNode).Handle(0xc0010af950, 0xc001083560) + D:/workspace/go/project/PandaX/PandaX/pkg/rule_engine/nodes/filter_message_type_switch_node.go:42 +0x256 +pandax/pkg/rule_engine/nodes.(*inputNode).Handle(0xc0010af7c0, 0xc001083560) + D:/workspace/go/project/PandaX/PandaX/pkg/rule_engine/nodes/input_node.go:31 +0x112 +pandax/pkg/rule_engine.(*ruleChainInstance).StartRuleChain(...) + D:/workspace/go/project/PandaX/PandaX/pkg/rule_engine/instance.go:46 +pandax/iothub.(*HookService).handleOne.func1() + D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work.go:63 +0x3f5 +created by pandax/iothub.(*HookService).handleOne + D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work.go:34 +0xa5 + +2023-09-13 17:43:55-------------------------------- +panic: interface conversion: interface {} is nil, not string + +goroutine 160 [running]: +pandax/pkg/rule_engine/nodes.(*createAlarmNode).Handle(0xc0003e0a80, 0xc0011e4240) + D:/workspace/go/project/PandaX/PandaX/pkg/rule_engine/nodes/action_create_alarm_node.go:39 +0x71b +pandax/pkg/rule_engine/nodes.(*scriptFilterNode).Handle(0xc0011e4180, 0xc0011e4240) + D:/workspace/go/project/PandaX/PandaX/pkg/rule_engine/nodes/filter_script_node.go:35 +0x2cb +pandax/pkg/rule_engine/nodes.(*saveTimeSeriesNode).Handle(0xc00067b630, 0xc0011e4240) + D:/workspace/go/project/PandaX/PandaX/pkg/rule_engine/nodes/action_save_timeseries_node.go:49 +0x319 +pandax/pkg/rule_engine/nodes.(*messageTypeSwitchNode).Handle(0xc00067b6d0, 0xc0011e4240) + D:/workspace/go/project/PandaX/PandaX/pkg/rule_engine/nodes/filter_message_type_switch_node.go:42 +0x256 +pandax/pkg/rule_engine/nodes.(*inputNode).Handle(0xc00067b540, 0xc0011e4240) + D:/workspace/go/project/PandaX/PandaX/pkg/rule_engine/nodes/input_node.go:31 +0x112 +pandax/pkg/rule_engine.(*ruleChainInstance).StartRuleChain(...) + D:/workspace/go/project/PandaX/PandaX/pkg/rule_engine/instance.go:46 +pandax/iothub.(*HookService).handleOne.func1() + D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work.go:61 +0x37f +created by pandax/iothub.(*HookService).handleOne + D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work.go:33 +0xa5 diff --git a/go.mod b/go.mod index e493780..9fd0b1a 100644 --- a/go.mod +++ b/go.mod @@ -37,6 +37,7 @@ require ( require ( github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible // indirect github.com/StackExchange/wmi v0.0.0-20210224194228-fe8f1750fd46 // indirect + github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b // indirect github.com/aliyun/aliyun-oss-go-sdk v2.2.0+incompatible // indirect github.com/bluenviron/mediacommon v0.7.0 // indirect github.com/brianvoe/gofakeit/v6 v6.0.2 // indirect diff --git a/go.sum b/go.sum index f57cb73..a9ffa24 100644 --- a/go.sum +++ b/go.sum @@ -14,6 +14,10 @@ github.com/Shopify/sarama v1.38.1/go.mod h1:iwv9a67Ha8VNa+TifujYoWGxWnu2kNVAQdSd github.com/Shopify/toxiproxy/v2 v2.5.0 h1:i4LPT+qrSlKNtQf5QliVjdP08GyAH8+BUIc9gT0eahc= github.com/StackExchange/wmi v0.0.0-20210224194228-fe8f1750fd46 h1:5sXbqlSomvdjlRbWyNqkPsJ3Fg+tQZCbgeX1VGljbQY= github.com/StackExchange/wmi v0.0.0-20210224194228-fe8f1750fd46/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= +github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm/4RlzPXRlREEwqTHAN3T56Bv2ITsFT3gY= +github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk= +github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b h1:slYM766cy2nI3BwyRiyQj/Ud48djTMtMebDqepE95rw= +github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM= github.com/aliyun/aliyun-oss-go-sdk v2.2.0+incompatible h1:ht2+VfbXtNLGhCsnTMc6/N26nSTBK6qdhktjYyjJQkk= github.com/aliyun/aliyun-oss-go-sdk v2.2.0+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= @@ -712,6 +716,7 @@ golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= @@ -797,6 +802,7 @@ gorm.io/plugin/dbresolver v1.1.0/go.mod h1:tpImigFAEejCALOttyhWqsy4vfa2Uh/vAUVnL honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= m7s.live/engine/v4 v4.13.8 h1:pDl8YWxip5aTidw2Q4NuU+8A6irBraLRfoeBi42S6iQ= m7s.live/engine/v4 v4.13.8/go.mod h1:k/6iFSuJxmhJL8VO45NAga8BbgZHLLfRXOwCcCzk2s8= m7s.live/plugin/gb28181/v4 v4.3.9 h1:EDvozinlQbXsby5L+1/cxnmo+HnlQlm8JJ6rYEwOvO4= diff --git a/iothub/hook_message_work.go b/iothub/hook_message_work.go index 30e6e64..f16fe85 100644 --- a/iothub/hook_message_work.go +++ b/iothub/hook_message_work.go @@ -4,8 +4,10 @@ import ( "context" "encoding/json" "fmt" + "github.com/PandaXGO/PandaKit/biz" "pandax/apps/device/services" ruleEntity "pandax/apps/rule/entity" + ruleService "pandax/apps/rule/services" "pandax/pkg/global" "pandax/pkg/rule_engine" "pandax/pkg/rule_engine/message" @@ -44,6 +46,9 @@ func (s *HookService) handleOne(msg *DeviceEventInfo) { // 业务逻辑执行 // 获取规则链代码 chain := getRuleChain(etoken) + if chain == nil { + return + } dataCode := chain.LfData.DataCode code, err := json.Marshal(dataCode) //新建规则链实体 @@ -96,11 +101,21 @@ func (s *HookService) handleOne(msg *DeviceEventInfo) { } func getRuleChain(etoken *tool.DeviceAuth) *ruleEntity.RuleDataJson { + defer func() { + if err := recover(); err != nil { + global.Log.Error(err) + } + }() + key := etoken.ProductId + get, err := global.Cache.ComputeIfAbsent(key, func(k any) (any, error) { + one := services.ProductModelDao.FindOne(k.(string)) + rule := ruleService.RuleChainModelDao.FindOne(one.RuleChainId) + return rule.RuleDataJson, nil + }) ruleData := ruleEntity.RuleDataJson{} - err := global.RedisDb.Get(etoken.ProductId, &ruleData) - if err != nil { - return nil - } + biz.ErrIsNil(err, "缓存读取规则链失败") + err = tool.StringToStruct(get.(string), &ruleData) + biz.ErrIsNil(err, "规则链数据转化失败") return &ruleData } diff --git a/panda_log.log b/panda_log.log index 238aeaf..87ddd32 100644 --- a/panda_log.log +++ b/panda_log.log @@ -667,3 +667,152 @@ 2023-09-09 11:03:13.823 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/d_1928b99619910dae5a001fa7/status] : 获取Device状态信息 ->566ms 2023-09-09 11:03:43.401 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/d_1928b99619910dae5a001fa7/status] : 获取Device状态信息 ->28ms 2023-09-09 11:04:01.811 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/d_1928b99619910dae5a001fa7/status] [uid=1] [uname=panda] : 获取Device状态信息 ->95ms +2023-09-13 17:17:59.442 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230901074047-e0e8e4bf2bed/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] +2023-09-13 17:17:59.450 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:46] : mysql连接成功 +2023-09-13 17:17:59.453 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:51] : Redis连接成功 +2023-09-13 17:17:59.453 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:58] : Tdengine连接成功 +2023-09-13 17:17:59.467 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:76] : 路由初始化完成 +2023-09-13 17:17:59.467 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 +2023-09-13 17:17:59.468 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:37] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: :9001 +2023-09-13 17:17:59.480 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:83] : 2023-09-13 17:17:59 [INFO] JobCore start success. +2023-09-13 17:17:59.486 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:153] : 账号pandax,密码pandax,开始认证 +2023-09-13 17:17:59.490 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:96] : Client emqx@172.17.0.4 Connected +2023-09-13 17:19:04.441 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:153] : 账号d_1928b99619910dae5a001fa7,密码YWRlMTA0MmYtMzc2MS0zZTljLThjNjAtMzNhMzg4ZjdkOGQ3,开始认证 +2023-09-13 17:19:04.445 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:96] : Client emqx@172.17.0.4 Connected +2023-09-13 17:19:05.181 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:178] : d_1928b99619910dae5a001fa7订阅了[name:"$dz/events/device/s7-device/data/update"] +2023-09-13 17:19:05.450 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:178] : d_1928b99619910dae5a001fa7订阅了[name:"$hw/events/device/s7-device/twin/update"] +2023-09-13 17:19:05.717 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:178] : d_1928b99619910dae5a001fa7订阅了[name:"v1/devices/me/rpc/request/+"] +2023-09-13 17:19:10.339 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work.go:103] : 规则链数据转化失败 +2023-09-13 17:21:46.512 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230901074047-e0e8e4bf2bed/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] +2023-09-13 17:21:46.517 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:46] : mysql连接成功 +2023-09-13 17:21:46.519 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:51] : Redis连接成功 +2023-09-13 17:21:46.519 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:58] : Tdengine连接成功 +2023-09-13 17:21:46.529 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:76] : 路由初始化完成 +2023-09-13 17:21:46.529 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 +2023-09-13 17:21:46.530 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:37] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: :9001 +2023-09-13 17:21:46.535 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:153] : 账号pandax,密码pandax,开始认证 +2023-09-13 17:21:46.535 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:83] : 2023-09-13 17:21:46 [INFO] JobCore start success. +2023-09-13 17:21:46.537 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:96] : Client emqx@172.17.0.4 Connected +2023-09-13 17:21:52.175 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work.go:107] : 规则链数据转化失败 +2023-09-13 17:23:20.497 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230901074047-e0e8e4bf2bed/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] +2023-09-13 17:23:20.501 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:46] : mysql连接成功 +2023-09-13 17:23:20.503 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:51] : Redis连接成功 +2023-09-13 17:23:20.503 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:58] : Tdengine连接成功 +2023-09-13 17:23:20.512 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:76] : 路由初始化完成 +2023-09-13 17:23:20.513 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 +2023-09-13 17:23:20.513 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:37] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: :9001 +2023-09-13 17:23:20.518 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:83] : 2023-09-13 17:23:20 [INFO] JobCore start success. +2023-09-13 17:23:20.850 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:124] : pandax断开连接 +2023-09-13 17:23:20.851 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:153] : 账号pandax,密码pandax,开始认证 +2023-09-13 17:23:20.853 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:96] : Client emqx@172.17.0.4 Connected +2023-09-13 17:23:30.086 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work.go:107] : 规则链数据转化失败 +2023-09-13 17:25:58.392 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230901074047-e0e8e4bf2bed/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] +2023-09-13 17:25:58.397 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:46] : mysql连接成功 +2023-09-13 17:25:58.399 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:51] : Redis连接成功 +2023-09-13 17:25:58.399 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:58] : Tdengine连接成功 +2023-09-13 17:25:58.407 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:76] : 路由初始化完成 +2023-09-13 17:25:58.407 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 +2023-09-13 17:25:58.407 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:37] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: :9001 +2023-09-13 17:25:58.411 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:83] : 2023-09-13 17:25:58 [INFO] JobCore start success. +2023-09-13 17:25:58.621 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:124] : pandax断开连接 +2023-09-13 17:25:58.623 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:153] : 账号pandax,密码pandax,开始认证 +2023-09-13 17:25:58.625 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:96] : Client emqx@172.17.0.4 Connected +2023-09-13 17:26:00.724 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work.go:107] : 规则链数据转化失败 +2023-09-13 17:27:25.978 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230901074047-e0e8e4bf2bed/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] +2023-09-13 17:27:25.986 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:46] : mysql连接成功 +2023-09-13 17:27:25.989 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:51] : Redis连接成功 +2023-09-13 17:27:25.989 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:58] : Tdengine连接成功 +2023-09-13 17:27:26.009 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:76] : 路由初始化完成 +2023-09-13 17:27:26.009 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 +2023-09-13 17:27:26.010 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:37] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: :9001 +2023-09-13 17:27:26.018 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:83] : 2023-09-13 17:27:26 [INFO] JobCore start success. +2023-09-13 17:27:26.396 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:124] : pandax断开连接 +2023-09-13 17:27:26.398 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:153] : 账号pandax,密码pandax,开始认证 +2023-09-13 17:27:26.400 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:96] : Client emqx@172.17.0.4 Connected +2023-09-13 17:27:27.757 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work.go:107] : 规则链数据转化失败 +2023-09-13 17:28:08.040 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230901074047-e0e8e4bf2bed/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] +2023-09-13 17:28:08.045 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:46] : mysql连接成功 +2023-09-13 17:28:08.047 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:51] : Redis连接成功 +2023-09-13 17:28:08.047 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:58] : Tdengine连接成功 +2023-09-13 17:28:08.055 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:76] : 路由初始化完成 +2023-09-13 17:28:08.055 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 +2023-09-13 17:28:08.056 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:37] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: :9001 +2023-09-13 17:28:08.060 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:83] : 2023-09-13 17:28:08 [INFO] JobCore start success. +2023-09-13 17:28:08.362 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:124] : pandax断开连接 +2023-09-13 17:28:08.363 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:153] : 账号pandax,密码pandax,开始认证 +2023-09-13 17:28:08.366 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:96] : Client emqx@172.17.0.4 Connected +2023-09-13 17:28:10.073 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work.go:108] : 规则链数据转化失败 +2023-09-13 17:28:58.464 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230901074047-e0e8e4bf2bed/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] +2023-09-13 17:28:58.472 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:46] : mysql连接成功 +2023-09-13 17:28:58.474 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:51] : Redis连接成功 +2023-09-13 17:28:58.474 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:58] : Tdengine连接成功 +2023-09-13 17:28:58.484 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:76] : 路由初始化完成 +2023-09-13 17:28:58.484 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 +2023-09-13 17:28:58.485 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:37] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: :9001 +2023-09-13 17:28:58.490 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:83] : 2023-09-13 17:28:58 [INFO] JobCore start success. +2023-09-13 17:28:58.812 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:124] : pandax断开连接 +2023-09-13 17:28:58.814 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:153] : 账号pandax,密码pandax,开始认证 +2023-09-13 17:28:58.817 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:96] : Client emqx@172.17.0.4 Connected +2023-09-13 17:28:59.657 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work.go:108] : 规则链数据转化失败 +2023-09-13 17:30:52.411 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230901074047-e0e8e4bf2bed/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] +2023-09-13 17:30:52.417 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:46] : mysql连接成功 +2023-09-13 17:30:52.419 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:51] : Redis连接成功 +2023-09-13 17:30:52.419 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:58] : Tdengine连接成功 +2023-09-13 17:30:52.427 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:76] : 路由初始化完成 +2023-09-13 17:30:52.427 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 +2023-09-13 17:30:52.427 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:37] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: :9001 +2023-09-13 17:30:52.432 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:83] : 2023-09-13 17:30:52 [INFO] JobCore start success. +2023-09-13 17:30:52.528 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:124] : pandax断开连接 +2023-09-13 17:30:52.530 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:153] : 账号pandax,密码pandax,开始认证 +2023-09-13 17:30:52.532 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:96] : Client emqx@172.17.0.4 Connected +2023-09-13 17:30:53.463 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work.go:108] : 规则链数据转化失败 +2023-09-13 17:33:28.506 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230901074047-e0e8e4bf2bed/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] +2023-09-13 17:33:28.513 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:46] : mysql连接成功 +2023-09-13 17:33:28.514 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:51] : Redis连接成功 +2023-09-13 17:33:28.514 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:58] : Tdengine连接成功 +2023-09-13 17:33:28.523 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:76] : 路由初始化完成 +2023-09-13 17:33:28.523 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 +2023-09-13 17:33:28.524 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:37] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: :9001 +2023-09-13 17:33:28.528 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:83] : 2023-09-13 17:33:28 [INFO] JobCore start success. +2023-09-13 17:33:28.529 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:153] : 账号pandax,密码pandax,开始认证 +2023-09-13 17:33:28.530 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:96] : Client emqx@172.17.0.4 Connected +2023-09-13 17:33:32.112 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work.go:108] : 规则链数据转化失败 +2023-09-13 17:35:28.242 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230901074047-e0e8e4bf2bed/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] +2023-09-13 17:35:28.249 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:46] : mysql连接成功 +2023-09-13 17:35:28.251 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:51] : Redis连接成功 +2023-09-13 17:35:28.252 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:58] : Tdengine连接成功 +2023-09-13 17:35:28.259 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:76] : 路由初始化完成 +2023-09-13 17:35:28.259 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 +2023-09-13 17:35:28.259 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:37] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: :9001 +2023-09-13 17:35:28.265 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:83] : 2023-09-13 17:35:28 [INFO] JobCore start success. +2023-09-13 17:35:28.375 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:124] : pandax断开连接 +2023-09-13 17:35:28.379 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:153] : 账号pandax,密码pandax,开始认证 +2023-09-13 17:35:28.381 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:96] : Client emqx@172.17.0.4 Connected +2023-09-13 17:35:29.791 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work.go:108] : 规则链数据转化失败 +2023-09-13 17:37:45.022 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work.go:108] : 规则链数据转化失败 +2023-09-13 17:41:16.008 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230901074047-e0e8e4bf2bed/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] +2023-09-13 17:41:16.015 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:46] : mysql连接成功 +2023-09-13 17:41:16.017 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:51] : Redis连接成功 +2023-09-13 17:41:16.017 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:58] : Tdengine连接成功 +2023-09-13 17:41:16.024 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:76] : 路由初始化完成 +2023-09-13 17:41:16.024 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 +2023-09-13 17:41:16.024 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:37] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: :9001 +2023-09-13 17:41:16.029 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:83] : 2023-09-13 17:41:16 [INFO] JobCore start success. +2023-09-13 17:41:20.205 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:124] : pandax断开连接 +2023-09-13 17:41:20.207 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:153] : 账号pandax,密码pandax,开始认证 +2023-09-13 17:41:20.209 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:96] : Client emqx@172.17.0.4 Connected +2023-09-13 17:43:55.327 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230901074047-e0e8e4bf2bed/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] +2023-09-13 17:43:55.358 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:46] : mysql连接成功 +2023-09-13 17:43:55.366 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:51] : Redis连接成功 +2023-09-13 17:43:55.366 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:58] : Tdengine连接成功 +2023-09-13 17:43:55.387 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:76] : 路由初始化完成 +2023-09-13 17:43:55.387 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 +2023-09-13 17:43:55.387 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:37] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: :9001 +2023-09-13 17:43:55.411 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:153] : 账号pandax,密码pandax,开始认证 +2023-09-13 17:43:55.426 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:96] : Client emqx@172.17.0.4 Connected +2023-09-13 17:43:55.452 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:83] : 2023-09-13 17:43:55 [INFO] JobCore start success. +2023-09-13 17:44:01.537 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:153] : 账号d_1928b99619910dae5a001fa7,密码YWRlMTA0MmYtMzc2MS0zZTljLThjNjAtMzNhMzg4ZjdkOGQ3,开始认证 +2023-09-13 17:44:01.539 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:96] : Client emqx@172.17.0.4 Connected +2023-09-13 17:44:02.393 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:178] : d_1928b99619910dae5a001fa7订阅了[name:"$dz/events/device/s7-device/data/update"] +2023-09-13 17:44:02.774 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:178] : d_1928b99619910dae5a001fa7订阅了[name:"$hw/events/device/s7-device/twin/update"] +2023-09-13 17:44:03.091 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:178] : d_1928b99619910dae5a001fa7订阅了[name:"v1/devices/me/rpc/request/+"] diff --git a/pkg/initialize/event.go b/pkg/initialize/event.go index 2b33912..e6a27bb 100644 --- a/pkg/initialize/event.go +++ b/pkg/initialize/event.go @@ -5,7 +5,6 @@ import ( "pandax/apps/device/services" "pandax/pkg/events" "pandax/pkg/global" - "time" ) // 初始化事件监听 @@ -18,10 +17,7 @@ func InitEvents() { }) if list != nil { for _, product := range *list { - err := global.RedisDb.Set(product.Id, codeData, time.Hour*24*365) - if err != nil { - global.Log.Errorf("事件监听执行错误:%s", err.Error()) - } + global.Cache.Put(product.Id, codeData) } } }) diff --git a/pkg/tool/conv.go b/pkg/tool/conv.go index bf9348e..6498ac1 100644 --- a/pkg/tool/conv.go +++ b/pkg/tool/conv.go @@ -92,3 +92,11 @@ func InterfaceToStruct(m interface{}, s interface{}) error { return nil } + +func StringToStruct(m string, s interface{}) error { + err := json.Unmarshal([]byte(m), s) + if err != nil { + return err + } + return nil +} diff --git a/shutdown.bat b/shutdown.bat index 0c88ddd..ace1693 100644 --- a/shutdown.bat +++ b/shutdown.bat @@ -1 +1 @@ -taskkill /pid 25252 -t -f \ No newline at end of file +taskkill /pid 32872 -t -f \ No newline at end of file diff --git a/uploads/file/visual/e9cc37b4b094c1510624894650b2dca7_20230913093840.gif b/uploads/file/visual/e9cc37b4b094c1510624894650b2dca7_20230913093840.gif new file mode 100644 index 0000000..1d77e11 Binary files /dev/null and b/uploads/file/visual/e9cc37b4b094c1510624894650b2dca7_20230913093840.gif differ