go-common中增加mcp抽离成通用方法(编排由业务方自行处理)
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
||||
"git.toowon.com/jimmy/go-common/email"
|
||||
"git.toowon.com/jimmy/go-common/i18n"
|
||||
"git.toowon.com/jimmy/go-common/logger"
|
||||
"git.toowon.com/jimmy/go-common/mcp"
|
||||
"git.toowon.com/jimmy/go-common/sms"
|
||||
"git.toowon.com/jimmy/go-common/storage"
|
||||
"github.com/redis/go-redis/v9"
|
||||
@@ -24,6 +25,7 @@ const (
|
||||
ModuleEmail Module = "email"
|
||||
ModuleSMS Module = "sms"
|
||||
ModuleI18n Module = "i18n"
|
||||
ModuleMCP Module = "mcp"
|
||||
)
|
||||
|
||||
// MustInit 从配置文件初始化全局 Factory;失败则 panic(适合 main 启动)
|
||||
@@ -56,6 +58,8 @@ func (f *Factory) Warmup(modules ...Module) error {
|
||||
_, err = f.SMS()
|
||||
case ModuleI18n:
|
||||
_, err = f.I18n()
|
||||
case ModuleMCP:
|
||||
_, err = f.MCP()
|
||||
default:
|
||||
return fmt.Errorf("unknown module: %s", m)
|
||||
}
|
||||
@@ -104,6 +108,12 @@ func (f *Factory) Close() error {
|
||||
}
|
||||
f.db = nil
|
||||
}
|
||||
if f.mcp != nil {
|
||||
if err := f.mcp.Close(); err != nil {
|
||||
errs = append(errs, fmt.Errorf("mcp: %w", err))
|
||||
}
|
||||
f.mcp = nil
|
||||
}
|
||||
if f.logger != nil {
|
||||
if err := f.logger.Close(); err != nil {
|
||||
errs = append(errs, fmt.Errorf("logger: %w", err))
|
||||
@@ -179,3 +189,12 @@ func (f *Factory) MustI18n() *i18n.I18n {
|
||||
}
|
||||
return i
|
||||
}
|
||||
|
||||
// MustMCP 获取 MCP 工具子系统对象;失败则 panic(适合启动期注入)
|
||||
func (f *Factory) MustMCP() mcp.Manager {
|
||||
m, err := f.MCP()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return m
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user