mirror of
https://gitee.com/johng/gf
synced 2026-07-04 21:03:13 +08:00
add examples for package gproc
This commit is contained in:
54
.example/os/gproc/signal/signal_handler.go
Normal file
54
.example/os/gproc/signal/signal_handler.go
Normal file
@ -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
|
||||
}
|
||||
}
|
||||
27
.example/os/gproc/signal/signal_handler_gproc.go
Normal file
27
.example/os/gproc/signal/signal_handler_gproc.go
Normal file
@ -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()
|
||||
}
|
||||
@ -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...)
|
||||
|
||||
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user