更改规则链缓存

This commit is contained in:
XM-GO
2023-09-13 17:45:08 +08:00
parent ed8613b6fd
commit 70fb34b90f
11 changed files with 302 additions and 29 deletions

View File

@@ -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)

View File

@@ -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
}

117
fatal.log
View File

@@ -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

1
go.mod
View File

@@ -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

6
go.sum
View File

@@ -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=

View File

@@ -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
}

View File

@@ -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/+"]

View File

@@ -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)
}
}
})

View File

@@ -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
}

View File

@@ -1 +1 @@
taskkill /pid 25252 -t -f
taskkill /pid 32872 -t -f

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB