为了账号安全,请及时绑定邮箱和手机立即绑定

年轻人的第一个go程序:监控数据库字段 报警

标签:
Java

监控数据库字段 钉钉报警

package main

import (

    "bytes"

    "encoding/json"

    "fmt"

    _ "github.com/go-sql-driver/mysql"

    "github.com/go-xorm/xorm"

    "io/ioutil"

    "net/http"

    "time"

)

var engine *xorm.Engine

const webhook_url = "https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

func dingtoinfo(s string) bool {

    content, data := make(map[string]string), make(map[string]interface{})

    content["content"] = s

    data["msgtype"] = "text"

    data["text"] = content

    b, _ := json.Marshal(data)

    resp, err := http.Post(webhook_url,

        "application/json",

        bytes.NewBuffer(b))

    if err != nil {

        fmt.Println(err)

    }

    defer resp.Body.Close()

    body, _ := ioutil.ReadAll(resp.Body)

    fmt.Println(string(body))

    return true

}

func recoverName() {

    if r := recover(); r != nil {

        res := fmt.Sprintf("%s %s", "监控程序 报错:", r)

        dingtoinfo(res)

    }

}

func main() {

    defer recoverName()

    var err error

    engine, err = xorm.NewEngine("mysql", "root:xxxxxxxxxxxxxxx@tcp(127.0.0.1:3306)/new?charset=utf8")

    if err != nil {

        panic(err.Error())

    }

    gsql := " select up_time from token where type = 0 ;"

    gres, gerr := engine.Query(gsql)

    if gerr != nil {

        panic(gerr.Error())

    }

    var data string

    for _, v := range gres {

        data = string(v["up_time"])

    }

    loc, _ := time.LoadLocation("Asia/Shanghai")

    nowTime := time.Now().In(loc)

    tm, _ := time.Parse("2006-01-02 03:04:05", data)

    ntm := tm.In(loc)

    subM := nowTime.Sub(ntm)

    fmt.Println("token更新时间 与 系统时间 相差",subM)

    subtract := int(subM.Minutes())

    if subtract > 20 {

        dingtoinfo("异常, 请及时登录查看 !!!")

    }

}

©著作权归作者所有:来自51CTO博客作者295631788的原创作品,如需转载,请注明出处,否则将追究法律责任


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消