package tasklog import ( "github.com/gogf/gf/v2/database/gdb" "golang.org/x/net/context" "nodeMonitor/internal/dao" "nodeMonitor/internal/model/do" "nodeMonitor/internal/model/entity" "nodeMonitor/internal/service" ) type ( sTaskLog struct{} ) func init() { service.RegisterTaskLog(New()) } func New() *sTaskLog { return &sTaskLog{} } // Create 创建延迟日志 func (c *sTaskLog) Create(ctx context.Context, name string, content string) error { return dao.Tasklog.Transaction(ctx, func(ctx context.Context, tx gdb.TX) error { _, err := dao.Tasklog.Ctx(ctx).Data(do.Tasklog{ Taskname: name, Taskconet: content, }).Insert() return err }) } func (c *sTaskLog) GetTasLog(ctx context.Context) ([]*entity.Tasklog, error) { var data []*entity.Tasklog config, err := service.Config().GetConfig(ctx, "tasktime") if err != nil { return nil, err } err = dao.Tasklog.Ctx(ctx).Where("create_at > DATE_SUB(NOW(),INTERVAL ? MINUTE)", config.Value).OrderDesc("create_at").Scan(&data) if err != nil { return nil, err } return data, nil } func (c *sTaskLog) ClearTasLog(ctx context.Context) error { config, err := service.Config().GetConfig(ctx, "tasktimeclear") if err != nil { return err } _, err = dao.Tasklog.Ctx(ctx).Where("create_at <= DATE(DATE_SUB(NOW(),INTERVAL ? DAY))", config.Value).Delete() if err != nil { return err } return nil }