美文网首页
系统编写练习: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表维护系统

    需求: 可配置定时器、mysql实例、数据库、表、查询sql语句、触发阈值、维护sql语句,通过定时查询某表的容量...

  • Fleetco

    系统介绍 Fleetco是一个基于Web的车辆维护管理系统,用PHP编写,带有MySQL数据库后端。Fleetco...

  • 系统编写练习:命令执行系统

    需求: 编辑常用的命令,在某台主机上远程发送命令到其他主机并执行。能够查看操作记录、执行状态。 后续扩展 开发累积...

  • oracle通过DBLINK查询mysql

    背景:本系统(oracle)需要获取外围系统(mysql)数据,考虑到使用和维护方便,不使用ws或者rest接口,...

  • Sql Mybatis 有则更新无则插入(批量)

    环境及版本: 系统:Mysql \ Oracle 一 基础表数据 二 Mysql 1 批量插入 mapper 接...

  • MySQL表的打开和关闭

    本文问题 MySQL为什么要打开表? MySQL打开表对操作系统有什么影响,哪种存储引擎有额外的影响? MySQL...

  • mysql5.7的用户权限设置

    所有的关于权限修改的语句,都需要刷新mysql的系统权限相关表方可生效。 mysql权限表是指在mysql数据库下...

  • 查询MySql的表结构和元数据

    MySql的表结构和元数据存储在系统的表information_schema.columns表中。primaryK...

  • 三、数据类型和约束

    1、数据类型 在MySQL数据库管理系统中,可以通过存储引擎来决定表的类型。同时,MySQL数据库管理系统也 提供...

  • Mariadb基础配置

    mysql与mariadb MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,MariaD...

网友评论

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

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