From 1441ce7f5f4253f7c41e93ff5c00ef6fe4900754 Mon Sep 17 00:00:00 2001 From: John Guo Date: Sat, 29 May 2021 15:47:07 +0800 Subject: [PATCH] add examples for package gproc --- .example/os/gproc/signal/signal_handler.go | 54 +++++++++++++++++++ .../os/gproc/signal/signal_handler_gproc.go | 27 ++++++++++ frame/g/g_object.go | 7 --- os/gproc/gproc_signal.go | 8 +-- 4 files changed, 86 insertions(+), 10 deletions(-) create mode 100644 .example/os/gproc/signal/signal_handler.go create mode 100644 .example/os/gproc/signal/signal_handler_gproc.go diff --git a/.example/os/gproc/signal/signal_handler.go b/.example/os/gproc/signal/signal_handler.go new file mode 100644 index 000000000..a1d495347 --- /dev/null +++ b/.example/os/gproc/signal/signal_handler.go @@ -0,0 +1,54 @@ +package main + +import ( + "fmt" + "os" + "os/signal" + "syscall" + "time" +) + +func signalHandlerForMQ() { + var ( + sig os.Signal + receivedChan = make(chan os.Signal) + ) + signal.Notify( + receivedChan, + syscall.SIGINT, + syscall.SIGQUIT, + syscall.SIGKILL, + syscall.SIGTERM, + syscall.SIGABRT, + ) + for { + sig = <-receivedChan + fmt.Println("MQ is shutting down due to signal:", sig.String()) + time.Sleep(time.Second) + fmt.Println("MQ is shut down smoothly") + return + } +} + +func main() { + fmt.Println("Process start, pid:", os.Getpid()) + go signalHandlerForMQ() + + var ( + sig os.Signal + receivedChan = make(chan os.Signal) + ) + signal.Notify( + receivedChan, + syscall.SIGINT, + syscall.SIGQUIT, + syscall.SIGKILL, + syscall.SIGTERM, + syscall.SIGABRT, + ) + for { + sig = <-receivedChan + fmt.Println("MainProcess is shutting down due to signal:", sig.String()) + return + } +} diff --git a/.example/os/gproc/signal/signal_handler_gproc.go b/.example/os/gproc/signal/signal_handler_gproc.go new file mode 100644 index 000000000..e8e473484 --- /dev/null +++ b/.example/os/gproc/signal/signal_handler_gproc.go @@ -0,0 +1,27 @@ +package main + +import ( + "fmt" + "github.com/gogf/gf/os/gproc" + "os" + "time" +) + +func signalHandlerForMQ(sig os.Signal) { + fmt.Println("MQ is shutting down due to signal:", sig.String()) + time.Sleep(time.Second) + fmt.Println("MQ is shut down smoothly") +} + +func signalHandlerForMain(sig os.Signal) { + fmt.Println("MainProcess is shutting down due to signal:", sig.String()) +} + +func main() { + fmt.Println("Process start, pid:", os.Getpid()) + gproc.AddSigHandlerShutdown( + signalHandlerForMQ, + signalHandlerForMain, + ) + gproc.Listen() +} diff --git a/frame/g/g_object.go b/frame/g/g_object.go index d3dfb888c..571d47247 100644 --- a/frame/g/g_object.go +++ b/frame/g/g_object.go @@ -81,13 +81,6 @@ func Log(name ...string) *glog.Logger { return gins.Log(name...) } -// Database is alias of DB. -// See DB. -// Deprecated, use DB instead. -func Database(name ...string) gdb.DB { - return gins.Database(name...) -} - // DB returns an instance of database ORM object with specified configuration group name. func DB(name ...string) gdb.DB { return gins.Database(name...) diff --git a/os/gproc/gproc_signal.go b/os/gproc/gproc_signal.go index 6a2b9b700..08d059e00 100644 --- a/os/gproc/gproc_signal.go +++ b/os/gproc/gproc_signal.go @@ -47,9 +47,11 @@ func AddSigHandler(handler SigHandler, signals ...os.Signal) { // syscall.SIGKILL, // syscall.SIGTERM, // syscall.SIGABRT. -func AddSigHandlerShutdown(handler SigHandler) { - for sig, _ := range shutdownSignalMap { - signalHandlerMap[sig] = append(signalHandlerMap[sig], handler) +func AddSigHandlerShutdown(handler ...SigHandler) { + for _, h := range handler { + for sig, _ := range shutdownSignalMap { + signalHandlerMap[sig] = append(signalHandlerMap[sig], h) + } } }