Revert "优化服务退出流程,增加中间件文档"

This reverts commit c511a2e6b3.
This commit is contained in:
maxbad
2023-05-15 23:15:17 +08:00
parent c981d0b8eb
commit 64ed43b7ca
30 changed files with 98 additions and 336 deletions

View File

@@ -7,9 +7,9 @@ package cmd
import (
"context"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gcmd"
"hotgo/internal/service"
"os"
)
var (
@@ -20,17 +20,17 @@ var (
Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {
service.AuthClient().Start(ctx)
serverWg.Add(1)
// 退出信号监听
signalListen(ctx, func(sig os.Signal) {
service.AuthClient().Stop(ctx)
})
// 信号监听
signalListen(ctx, signalHandlerForOverall)
select {
case <-serverCloseSignal:
service.AuthClient().Stop(ctx)
serverWg.Done()
// ...
}
g.Log().Debug(ctx, "auth successfully closed ..")
return
},
}

View File

@@ -13,7 +13,8 @@ import (
)
var (
Main = &gcmd.Command{
serverCloseSignal chan struct{}
Main = &gcmd.Command{
Description: `默认启动所有服务`,
Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {
return All.Func(ctx, parser)
@@ -75,10 +76,10 @@ var (
select {
case <-serverCloseSignal:
serverWg.Wait()
// ...
}
g.Log().Debug(ctx, "all service successfully closed ..")
g.Log().Debug(ctx, "service successfully closed ..")
return
},
}
@@ -88,4 +89,5 @@ func init() {
if err := Main.AddCommand(All, Http, Queue, Cron, Auth, Tools, Help); err != nil {
panic(err)
}
serverCloseSignal = make(chan struct{}, 1)
}

View File

@@ -7,10 +7,10 @@ package cmd
import (
"context"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gcmd"
"hotgo/internal/crons"
"hotgo/internal/service"
"os"
)
var (
@@ -25,18 +25,17 @@ var (
// tcp客户端
service.CronClient().Start(ctx)
serverWg.Add(1)
// 信号监听
signalListen(ctx, signalHandlerForOverall)
select {
case <-serverCloseSignal:
// 退出信号监听
signalListen(ctx, func(sig os.Signal) {
service.CronClient().Stop(ctx)
crons.StopALL()
serverWg.Done()
}
serverCloseSignal <- struct{}{}
})
g.Log().Debug(ctx, "cron successfully closed ..")
select {
case <-serverCloseSignal:
// ...
}
return
},
}

View File

@@ -3,6 +3,7 @@
// @Copyright Copyright (c) 2023 HotGo CLI
// @Author Ms <133814250@qq.com>
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
//
package cmd
import (
@@ -10,12 +11,6 @@ import (
"github.com/gogf/gf/v2/os/gproc"
"hotgo/utility/simple"
"os"
"sync"
)
var (
serverCloseSignal = make(chan struct{}, 1)
serverWg = sync.WaitGroup{}
)
func signalHandlerForOverall(sig os.Signal) {

View File

@@ -10,11 +10,13 @@ import (
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/net/ghttp"
"github.com/gogf/gf/v2/os/gcmd"
"hotgo/internal/crons"
"hotgo/internal/library/addons"
"hotgo/internal/library/casbin"
"hotgo/internal/router"
"hotgo/internal/service"
"hotgo/internal/websocket"
"os"
)
var (
@@ -75,20 +77,13 @@ var (
// https
setSSL(ctx, s)
serverWg.Add(1)
// 信号监听
signalListen(ctx, signalHandlerForOverall)
go func() {
select {
case <-serverCloseSignal:
websocket.Stop()
service.TCPServer().Stop(ctx)
s.Shutdown() // 主服务建议放在最后一个关闭
g.Log().Debug(ctx, "http successfully closed ..")
serverWg.Done()
}
}()
// 退出信号监听
signalListen(ctx, func(sig os.Signal) {
s.Shutdown()
crons.StopALL()
websocket.Stop()
service.TCPServer().Stop(ctx)
})
// Just run the server.
s.Run()

View File

@@ -25,14 +25,12 @@ var (
g.Log().Debug(ctx, "start queue consumer success..")
})
serverWg.Add(1)
// 信号监听
signalListen(ctx, signalHandlerForOverall)
select {
case <-serverCloseSignal:
serverWg.Done()
// ...
}
g.Log().Debug(ctx, "queue successfully closed ..")