63 lines
1.2 KiB
Go
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,
|
|
}
|
|
}
|