代码拉取完成,页面将自动刷新
package system
import "time"
type Monitor struct {
Dur int `json:"dur" yaml:"dur"` //单位秒
Diff int64 `json:"diff" yaml:"diff"`
Count int `json:"count" yaml:"count"`
Cpu int `json:"cpu" yaml:"cpu"`
Mem int `json:"mem" yaml:"mem"`
Disk int `json:"disk" yaml:"disk"`
DiskPath string `json:"diskPath" yaml:"diskPath"`
}
func (mon *Monitor) RunMonitor(call func(d []DiskPath, m *MemInfo, cpuPercent float64, flag int) int) {
if call == nil {
return
}
if mon.Dur <= 0 {
mon.Dur = 1
}
for {
select {
case <-Closed():
return
case <-time.After(time.Second * time.Duration(mon.Dur)):
flag := 0
c := CpuPercent()
if int(c) >= mon.Cpu {
flag = 1
}
var disk []DiskPath
if mon.DiskPath == "" { //所有磁盘
d := DiskAll()
for i := range d {
if int(d[i].UsedPercent) >= mon.Disk {
flag |= 2
disk = append(disk, d[i])
}
}
} else { //当前运行磁盘
d := DiskWithPath(mon.DiskPath)
if int(d.UsedPercent) >= mon.Disk {
flag |= 2
disk = append(disk, d)
}
}
m := Mem()
if int(m.UsedPercent) >= mon.Mem {
flag |= 4
}
if 0 != call(disk, &m, c, flag) {
return
}
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。