️ pprof 性能调优 / 计划任务支持秒级

This commit is contained in:
naiba
2021-09-29 19:58:02 +08:00
parent 1f1e0b6db7
commit 47dfa4777b
22 changed files with 149 additions and 105 deletions

View File

@@ -112,7 +112,7 @@ func ServeWeb(port uint) *http.Server {
},
})
r.Static("/static", "resource/static")
r.LoadHTMLGlob("resource/template/**/*")
r.LoadHTMLGlob("resource/template/**/*.html")
routers(r)
page404 := func(c *gin.Context) {

View File

@@ -267,19 +267,22 @@ func (ma *memberAPI) addOrEditCron(c *gin.Context) {
cr.Cover = cf.Cover
err = json.Unmarshal([]byte(cf.ServersRaw), &cr.Servers)
}
if err == nil {
_, err = cron.ParseStandard(cr.Scheduler)
}
tx := dao.DB.Begin()
if err == nil {
if cf.ID == 0 {
err = dao.DB.Create(&cr).Error
err = tx.Create(&cr).Error
} else {
err = dao.DB.Save(&cr).Error
err = tx.Save(&cr).Error
}
}
if err == nil {
cr.CronID, err = dao.Cron.AddFunc(cr.Scheduler, dao.CronTrigger(cr))
}
if err == nil {
err = tx.Commit().Error
} else {
tx.Rollback()
}
if err != nil {
c.JSON(http.StatusOK, model.Response{
Code: http.StatusBadRequest,

View File

@@ -25,7 +25,7 @@ func init() {
// 初始化 dao 包
dao.Conf = &model.Config{}
dao.Cron = cron.New(cron.WithLocation(shanghai))
dao.Cron = cron.New(cron.WithSeconds(), cron.WithLocation(shanghai))
dao.Crons = make(map[uint64]*model.Cron)
dao.ServerList = make(map[uint64]*model.Server)
dao.SecretToID = make(map[string]uint64)
@@ -60,13 +60,13 @@ func initSystem() {
loadCrons() //加载计划任务
// 清理 服务请求记录 和 流量记录 的旧数据
_, err := dao.Cron.AddFunc("30 3 * * *", cleanMonitorHistory)
_, err := dao.Cron.AddFunc("0 30 3 * * *", cleanMonitorHistory)
if err != nil {
panic(err)
}
// 流量记录打点
_, err = dao.Cron.AddFunc("0 * * * *", recordTransferHourlyUsage)
_, err = dao.Cron.AddFunc("0 0 * * * *", recordTransferHourlyUsage)
if err != nil {
panic(err)
}
@@ -162,10 +162,11 @@ func loadCrons() {
}
cr.CronID, err = dao.Cron.AddFunc(cr.Scheduler, dao.CronTrigger(cr))
if err != nil {
panic(err)
if err == nil {
dao.Crons[cr.ID] = &cr
} else {
log.Println("NEZHA>> 计划任务调度失败", cr, err)
}
dao.Crons[cr.ID] = &cr
}
dao.Cron.Start()
}