feat: 实现可靠事件与证据 connector (#153)

This commit is contained in:
QiuSW
2026-08-31 14:57:48 +08:00
parent cf00d73436
commit 04c5deecfb
36 changed files with 4102 additions and 14 deletions
+20 -6
View File
@@ -17,9 +17,11 @@ import (
"github.com/go-admin-team/go-admin-core/sdk/pkg"
"github.com/pkg/errors"
"github.com/spf13/cobra"
"gorm.io/gorm"
"git.ilapage.cn/ila/yovision/Sense/server/app/admin/models"
"git.ilapage.cn/ila/yovision/Sense/server/app/admin/router"
"git.ilapage.cn/ila/yovision/Sense/server/app/sense/integration/bell_connector"
"git.ilapage.cn/ila/yovision/Sense/server/app/sense/media"
"git.ilapage.cn/ila/yovision/Sense/server/common/database"
"git.ilapage.cn/ila/yovision/Sense/server/common/global"
@@ -88,15 +90,19 @@ func run() error {
}
runtimeCtx, runtimeCancel := context.WithCancel(context.Background())
defer runtimeCancel()
var runtimeDBFound bool
for _, db := range sdk.Runtime.GetDb() {
runtimeDBFound = true
db := defaultRuntimeDatabase()
if db != nil {
engine, engineOK := sdk.Runtime.GetEngine().(*gin.Engine)
if !engineOK || engine == nil {
return errors.New("Sense connector runtime requires Gin engine")
}
if err := startBellConnectorRuntime(runtimeCtx, engine, db, os.Getenv); err != nil {
return fmt.Errorf("Bell connector runtime unavailable: %w", err)
}
if err := media.StartRuntime(runtimeCtx, db); err != nil {
return fmt.Errorf("MediaMTX runtime unavailable: %w", err)
}
break
}
if !runtimeDBFound {
} else {
log.Error("MediaMTX runtime unavailable: Sense database is not initialized")
}
@@ -166,6 +172,14 @@ func run() error {
return nil
}
func startBellConnectorRuntime(ctx context.Context, engine *gin.Engine, db *gorm.DB, getenv bell_connector.Environment) error {
return bell_connector.StartRuntime(ctx, engine, db, getenv)
}
func defaultRuntimeDatabase() *gorm.DB {
return sdk.Runtime.GetDbByKey("")
}
//var Router runtime.Router
func tip() {