优化定时任务,日志输出

This commit is contained in:
xh
2026-01-17 02:54:16 +08:00
parent 76c576a6f7
commit 30ef26fce8
10 changed files with 90 additions and 22 deletions
+5 -1
View File
@@ -320,7 +320,11 @@ const handleSubmit = async () => {
// data.perms = ''
// }
mode.value == 'edit' ? await menuEdit(data) : await menuAdd(data)
if (mode.value == 'edit') {
await menuEdit(data)
} else {
await menuAdd(data)
}
popupRef.value?.close()
feedback.msgSuccess('操作成功')
emit('success')
+2 -1
View File
@@ -60,4 +60,5 @@ main
# air
tmp
dist/
uploads/
uploads/
./logs
+2 -2
View File
@@ -73,11 +73,11 @@ func (tm *CronManager) AddTask(taskID, CronExpr string, task cornService.Task) e
lock := util.NewRedisLock(lockKey, task.LockTTL) // 锁自动过期 10s
if !lock.Lock() {
core.Logger.Info("任务加锁失败:%s: %s", task.TaskCode, task.TaskDesc)
core.Logger.Infof("任务加锁失败:%s: %s", task.TaskCode, task.TaskDesc)
return
}
defer func() {
core.Logger.Info("任务解锁:%s: %s", task.TaskCode, task.TaskDesc)
core.Logger.Infof("任务解锁:%s: %s", task.TaskCode, task.TaskDesc)
// 解锁失败时,记录日志
if err := lock.Unlock(); err != nil {
core.Logger.Error("任务解锁失败:%s: %s, err: %v", task.TaskCode, task.TaskDesc, err)
+1 -1
View File
@@ -14,7 +14,7 @@ var AppConfig = appConfig{
AppName: "x_admin",
Version: "0.0.0",
Port: 8080,
GinMode: "",
GinMode: "release",
OssDomain: "",
DisallowModify: false,
}
+6 -6
View File
@@ -50,10 +50,10 @@ func loadConfig(config config) config {
}
func init() {
fmt.Println("AppConfig:", AppConfig)
fmt.Println("DBConfig:", DBConfig)
fmt.Println("RedisConfig:", RedisConfig)
fmt.Println("FileConfig:", FileConfig)
fmt.Println("GeTuiConfig:", GeTuiConfig)
fmt.Println("EmailConfig:", EmailConfig)
fmt.Printf("AppConfig: %+v\n", AppConfig)
fmt.Printf("DBConfig: %+v\n", DBConfig)
fmt.Printf("RedisConfig: %+v\n", RedisConfig)
fmt.Printf("FileConfig: %+v\n", FileConfig)
fmt.Printf("GeTuiConfig: %+v\n", GeTuiConfig)
fmt.Printf("EmailConfig: %+v\n", EmailConfig)
}
+35 -8
View File
@@ -1,22 +1,49 @@
package core
import (
"os"
"x_admin/config"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"gopkg.in/natefinch/lumberjack.v2"
)
var Logger = initLogger()
// initLogger 初始化zap日志
func initLogger() *zap.SugaredLogger {
zap.NewDevelopmentConfig()
cfg := zap.NewProductionEncoderConfig()
cfg.EncodeTime = zapcore.ISO8601TimeEncoder
cfg.EncodeLevel = zapcore.CapitalLevelEncoder
cfg.FunctionKey = "F"
core := zapcore.NewCore(zapcore.NewConsoleEncoder(cfg), zapcore.AddSync(os.Stderr), zapcore.InfoLevel)
writeSyncer := getLogWriter()
var encoder zapcore.Encoder
if config.AppConfig.GinMode == "debug" {
encoder = getDevEncoder()
} else {
encoder = getProductionEncoder()
}
core := zapcore.NewCore(encoder, writeSyncer, zapcore.DebugLevel)
logger := zap.New(core, zap.AddCaller())
return logger.Sugar()
}
func getDevEncoder() zapcore.Encoder {
encoderConfig := zap.NewDevelopmentEncoderConfig()
encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder
return zapcore.NewConsoleEncoder(encoderConfig)
}
func getProductionEncoder() zapcore.Encoder {
encoderConfig := zap.NewProductionEncoderConfig()
encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder
return zapcore.NewConsoleEncoder(encoderConfig)
}
func getLogWriter() zapcore.WriteSyncer {
lumberJackLogger := &lumberjack.Logger{
Filename: "./logs/like_admin.log",
MaxSize: 10,
MaxBackups: 5,
MaxAge: 30,
Compress: false,
}
return zapcore.AddSync(lumberJackLogger)
}
+1
View File
@@ -103,5 +103,6 @@ require (
golang.org/x/sys v0.39.0 // indirect
golang.org/x/tools v0.39.0 // indirect
google.golang.org/protobuf v1.36.10 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
+2
View File
@@ -238,6 +238,8 @@ google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc=
gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+33
View File
@@ -0,0 +1,33 @@
2026-01-17T02:50:15.008+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
2026-01-17T02:50:20.001+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
2026-01-17T02:50:20.005+0800 INFO corn/init.go:74 拉取到的任务数量: 1
2026-01-17T02:50:25.000+0800 INFO cornService/task.go:38 执行示例任务: exampleTask
2026-01-17T02:50:25.002+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
2026-01-17T02:50:30.001+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
2026-01-17T02:50:30.002+0800 INFO corn/init.go:74 拉取到的任务数量: 1
2026-01-17T02:50:30.152+0800 INFO corn/corn.go:76 任务加锁失败:exampleTask: 这是一个示例任务,每分钟执行一次
2026-01-17T02:50:32.000+0800 INFO corn/corn.go:80 任务解锁:exampleTask: 这是一个示例任务,每分钟执行一次
2026-01-17T02:50:35.003+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
2026-01-17T02:50:35.039+0800 INFO cornService/task.go:38 执行示例任务: exampleTask
2026-01-17T02:50:40.001+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
2026-01-17T02:50:40.001+0800 INFO corn/init.go:74 拉取到的任务数量: 1
2026-01-17T02:50:40.152+0800 INFO corn/corn.go:76 任务加锁失败:exampleTask: 这是一个示例任务,每分钟执行一次
2026-01-17T02:50:42.039+0800 INFO corn/corn.go:80 任务解锁:exampleTask: 这是一个示例任务,每分钟执行一次
2026-01-17T02:50:45.001+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
2026-01-17T02:50:45.001+0800 INFO cornService/task.go:38 执行示例任务: exampleTask
2026-01-17T02:50:50.000+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
2026-01-17T02:50:50.001+0800 INFO corn/init.go:74 拉取到的任务数量: 1
2026-01-17T02:50:50.153+0800 INFO corn/corn.go:76 任务加锁失败:exampleTask: 这是一个示例任务,每分钟执行一次
2026-01-17T02:50:52.002+0800 INFO corn/corn.go:80 任务解锁:exampleTask: 这是一个示例任务,每分钟执行一次
2026-01-17T02:50:55.000+0800 INFO cornService/task.go:38 执行示例任务: exampleTask
2026-01-17T02:50:55.002+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
2026-01-17T02:51:00.000+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
2026-01-17T02:51:00.001+0800 INFO corn/init.go:74 拉取到的任务数量: 1
2026-01-17T02:51:00.152+0800 INFO corn/corn.go:76 任务加锁失败:exampleTask: 这是一个示例任务,每分钟执行一次
2026-01-17T02:51:02.001+0800 INFO corn/corn.go:80 任务解锁:exampleTask: 这是一个示例任务,每分钟执行一次
2026-01-17T02:51:05.001+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
2026-01-17T02:51:05.001+0800 INFO cornService/task.go:38 执行示例任务: exampleTask
2026-01-17T02:51:10.001+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
2026-01-17T02:51:10.002+0800 INFO corn/init.go:74 拉取到的任务数量: 1
2026-01-17T02:51:10.161+0800 INFO corn/corn.go:76 任务加锁失败:exampleTask: 这是一个示例任务,每分钟执行一次
2026-01-17T02:51:12.002+0800 INFO corn/corn.go:80 任务解锁:exampleTask: 这是一个示例任务,每分钟执行一次
+3 -3
View File
@@ -109,9 +109,9 @@ func RecordLog(title string, reqTypes ...requestType) gin.HandlerFunc {
}()
// 执行方法
c.Next()
if config.AppConfig.GinMode == "debug" {
return
}
// if config.AppConfig.GinMode == "debug" {
// return
// }
if len(c.Errors) > 0 {
errStr = c.Errors.String()
status = 2