goProject/trunk/framework/startMgr/funcItem.go
皮蛋13361098506 1b77f62820 初始化项目
2025-01-06 16:01:02 +08:00

63 lines
1.2 KiB
Go

package startMgr
import (
"fmt"
"time"
"goutil/logUtil"
"goutil/runtimeUtil"
)
// 模块类型
// 具体有哪些模块类型需要对应的程序自己定义
type ModuleType int
// 方法项定义
type FuncItem struct {
// 方法名称
Name string
// 模块类型
ModuleType ModuleType
// 方法定义
Definition func() error
}
// 调用方法
// 返回值:
// 错误对象
func (this *FuncItem) Call() error {
err := this.Definition()
return err
}
// 调用方法
// operateName:操作名称
// 返回值:
// 错误对象
func (this *FuncItem) Call2(operateName string) error {
startTime := time.Now()
defer func() {
logUtil.InfoLog(fmt.Sprintf("%s %s 执行耗时:%v 执行后内存总占用:%vMB", this.Name, operateName, time.Since(startTime).String(), runtimeUtil.GetMemSize()/1024.0/1024.0))
}()
logUtil.InfoLog(fmt.Sprintf("%v %s 开始执行", this.Name, operateName))
err := this.Definition()
return err
}
// 新建函数项
// name:模块名
// moduleType:对应的模块类型
// definition:目标处理函数
func NewFuncItem(name string, moduleType ModuleType, definition func() error) *FuncItem {
return &FuncItem{
Name: name,
ModuleType: moduleType,
Definition: definition,
}
}