Слияние кода завершено, страница обновится автоматически
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
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )