11 Star 40 Fork 11

qieangel2013 / goMontioringDdl

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
main.go 1.94 KB
一键复制 编辑 原始数据 按行查看 历史
package main
import (
"flag"
"github.com/juju/errors"
"github.com/siddontang/go-log/log"
"julive.com/river"
"os"
"os/signal"
"runtime"
"syscall"
)
var configFile = flag.String("config", "./etc/river.toml", "ddl config file")
var my_addr = flag.String("my_addr", "", "MySQL addr")
var my_user = flag.String("my_user", "", "MySQL user")
var my_pass = flag.String("my_pass", "", "MySQL password")
var server_id = flag.Int("server_id", 0, "MySQL server id, as a pseudo slave")
var ding_webhook_url = flag.String("ding_webhook_url", "", "dingding webhook config")
var env = flag.String("env", "", "env config")
var flavor = flag.String("flavor", "", "flavor: mysql or mariadb")
var execution = flag.String("exec", "", "mysqldump execution path")
var logLevel = flag.String("log_level", "info", "log level")
func main() {
runtime.GOMAXPROCS(runtime.NumCPU())
flag.Parse()
log.SetLevelByName(*logLevel)
sc := make(chan os.Signal, 1)
signal.Notify(sc,
os.Kill,
os.Interrupt,
syscall.SIGHUP,
syscall.SIGINT,
syscall.SIGTERM,
syscall.SIGQUIT)
cfg, err := river.NewConfigWithFile(*configFile)
if err != nil {
println(errors.ErrorStack(err))
return
}
if len(*my_addr) > 0 {
cfg.MyAddr = *my_addr
}
if len(*my_user) > 0 {
cfg.MyUser = *my_user
}
if len(*my_pass) > 0 {
cfg.MyPassword = *my_pass
}
if *server_id > 0 {
cfg.ServerID = uint32(*server_id)
}
if len(*flavor) > 0 {
cfg.Flavor = *flavor
}
if len(*execution) > 0 {
cfg.DumpExec = *execution
}
if len(*ding_webhook_url) > 0 {
cfg.DingWebhookUrl = *ding_webhook_url
}
if len(*env) > 0 {
cfg.Env = *env
}
r, err := river.NewRiver(cfg)
if err != nil {
println(errors.ErrorStack(err))
return
}
done := make(chan struct{}, 1)
go func() {
r.Run()
done <- struct{}{}
}()
select {
case n := <-sc:
log.Infof("receive signal %v, closing", n)
case <-r.Ctx().Done():
log.Infof("context is done with %v, closing", r.Ctx().Err())
}
r.Close()
<-done
}
Go
1
https://gitee.com/qieangel2013/goMontioringDdl.git
git@gitee.com:qieangel2013/goMontioringDdl.git
qieangel2013
goMontioringDdl
goMontioringDdl
master

搜索帮助