美文网首页
系统编写练习:MySQL表维护系统

系统编写练习:MySQL表维护系统

作者: 我就是小政政 | 来源:发表于2020-06-07 15:23 被阅读0次
    需求:

    可配置定时器、mysql实例、数据库、表、查询sql语句、触发阈值、维护sql语句,通过定时查询某表的容量,并与设置的阈值比较,符合条件触发维护sql执行。

    系统:

    centos7

    语言:

    golang

    go-spring、gin、gorm、robfig/cron

    robfig/cron的使用示例
    package main
    
    import (
        l4g "github.com/alecthomas/log4go"
        "github.com/robfig/cron"
    )
    
    func text() {
        l4g.Info("text")
    }
    
    func main() {
        c := cron.New()
        c.AddFunc("* * * * * *", func() { text() })
        c.Start()
        select {}
    }
    
    使用go-spring集成gin、gorm

    目录如下:


    image.png
    package brun // import "table_maintain"
    
    import (
        sb "github.com/go-spring/go-spring/spring-boot"
        _ "github.com/go-spring/go-spring/starter-gin"
        _ "github.com/go-spring/go-spring/starter-mysql-gorm"
    )
    
    func main() {
        sb.RunApplication("brun/")
    }
    

    配置文件application.yaml

    db:
      url: root:root@tcp(192.168.199.107:3308)/table_maintain?charset=utf8&parseTime=true&loc=Local
    
    封装一个自己的log

    之前一直用logrus,这里既然都是用了go-spring就直接使用它的日志包吧,发现会输出文件名与行号,简单封装一下用到的。

    package common
    
    import (
        "fmt"
        SpringLogger "github.com/go-spring/go-spring-parent/spring-logger"
    )
    
    // 流程名
    const FlowBoot = "启动器"
    
    func LogInfo(flow, operation, input interface{} ,args ...interface{}) {
        template := fmt.Sprintf("流程:%v,操作:%v,状态:成功,输入:%v", flow, operation, input)
        SpringLogger.Infof(template, args...)
    }
    
    func LogPanic(flow, operation, input, err interface{},args ...interface{}) {
        template := fmt.Sprintf("流程:%v,操作:%v,状态:失败,输入:%v,错误:%v", flow, operation, input, err)
        SpringLogger.Panicf(template, args...)
    }
    
    启动器中将cron注册bean到ioc容器
    package starter
    
    import (
        sb "github.com/go-spring/go-spring/spring-boot"
        "github.com/robfig/cron/v3"
    )
    
    func init() {
        sb.RegisterBean(cron.New(cron.WithSeconds()))
    }
    
    数据表

    通用字段:

    id、created_at、modified_at、deleted_at
    

    任务(名称、定时表达式、查询语句、维护语句、阈值、状态[启用、失效])
    执行记录(任务id、执行结果、报错信息)

    mysql逆向工程

    相关文章

      网友评论

          本文标题:系统编写练习:MySQL表维护系统

          本文链接:https://www.haomeiwen.com/subject/fsovzhtx.html