57 lines
1.0 KiB
Go
57 lines
1.0 KiB
Go
package service
|
|
|
|
import (
|
|
"os"
|
|
"runtime"
|
|
|
|
"myschools.me/suguo/gofound/global"
|
|
"myschools.me/suguo/gofound/searcher"
|
|
"myschools.me/suguo/gofound/searcher/model"
|
|
"myschools.me/suguo/gofound/searcher/system"
|
|
)
|
|
|
|
// Base 基础管理
|
|
type Base struct {
|
|
Container *searcher.Container
|
|
Callback func() map[string]interface{}
|
|
}
|
|
|
|
func NewBase() *Base {
|
|
return &Base{
|
|
Container: global.Container,
|
|
Callback: Callback,
|
|
}
|
|
}
|
|
|
|
// Query 查询
|
|
func (b *Base) Query(request *model.SearchRequest) (*model.SearchResult, error) {
|
|
return b.Container.GetDataBase(request.Database).MultiSearch(request)
|
|
}
|
|
|
|
// GC 释放GC
|
|
func (b *Base) GC() {
|
|
runtime.GC()
|
|
}
|
|
|
|
// Status 获取服务器状态
|
|
func (b *Base) Status() map[string]interface{} {
|
|
var m runtime.MemStats
|
|
runtime.ReadMemStats(&m)
|
|
|
|
s := b.Callback()
|
|
|
|
r := map[string]interface{}{
|
|
"memory": system.GetMemStat(),
|
|
"cpu": system.GetCPUStatus(),
|
|
"disk": system.GetDiskStat(),
|
|
"system": s,
|
|
}
|
|
return r
|
|
}
|
|
|
|
// Restart 重启服务
|
|
func (b *Base) Restart() {
|
|
// TODD 未实现
|
|
os.Exit(0)
|
|
}
|