12345678910111213141516171819202122232425262728293031323334 |
- package job
- import (
- "strconv"
- "time"
- "x-ui/web/service"
- "github.com/shirou/gopsutil/v4/cpu"
- )
- type CheckCpuJob struct {
- tgbotService service.Tgbot
- settingService service.SettingService
- }
- func NewCheckCpuJob() *CheckCpuJob {
- return new(CheckCpuJob)
- }
- // Here run is a interface method of Job interface
- func (j *CheckCpuJob) Run() {
- threshold, _ := j.settingService.GetTgCpu()
- // get latest status of server
- percent, err := cpu.Percent(1*time.Second, false)
- if err == nil && percent[0] > float64(threshold) {
- msg := j.tgbotService.I18nBot("tgbot.messages.cpuThreshold",
- "Percent=="+strconv.FormatFloat(percent[0], 'f', 2, 64),
- "Threshold=="+strconv.Itoa(threshold))
- j.tgbotService.SendMsgToTgbotAdmins(msg)
- }
- }
|