This commit is contained in:
孟帅
2023-03-13 17:00:46 +08:00
parent ab912d0ba6
commit 1acc6d17c4
51 changed files with 2777 additions and 1024 deletions

View File

@@ -0,0 +1,33 @@
package cmd
import (
"context"
"github.com/gogf/gf/v2/os/gcmd"
"hotgo/internal/service"
"os"
)
var (
Auth = &gcmd.Command{
Name: "auth",
Brief: "系统授权,当为第三方客户开发应用项目不想将源码和可执行文件让其随意使用时,可以通过授权的方式约束使用方。",
Description: `目前已实现,一对一、一对多、有效期授权,具体使用可以参考现有逻辑结合实际场景进行改造`,
Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {
service.TCPAuth().Start(ctx)
// 退出信号监听
signalListen(ctx, func(sig os.Signal) {
service.TCPAuth().Stop(ctx)
})
// 信号监听
signalListen(ctx, signalHandlerForOverall)
select {
case <-serverCloseSignal:
// ...
}
return
},
}
)

View File

@@ -80,7 +80,7 @@ var (
)
func init() {
if err := Main.AddCommand(Http, Queue, Tools, All, Help); err != nil {
if err := Main.AddCommand(Http, Queue, Tools, Auth, All, Help); err != nil {
panic(err)
}
serverCloseSignal = make(chan struct{}, 1)

View File

@@ -9,20 +9,10 @@ package cmd
import (
"context"
"github.com/gogf/gf/v2/os/gproc"
"hotgo/internal/crons"
"hotgo/internal/websocket"
"hotgo/utility/simple"
"os"
)
func signalHandlerForCron(sig os.Signal) {
crons.StopALL()
}
func signalHandlerForWebSocket(sig os.Signal) {
websocket.Stop()
}
func signalHandlerForOverall(sig os.Signal) {
serverCloseSignal <- struct{}{}
}

View File

@@ -10,10 +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 (
@@ -68,12 +71,20 @@ var (
// 启动定时任务
service.SysCron().StartCron(ctx)
// 信号监听
signalListen(ctx, signalHandlerForCron, signalHandlerForWebSocket)
//// 启动TCP服务
//service.TCPServer().Start(ctx)
// https
setSSL(ctx, s)
// 退出信号监听
signalListen(ctx, func(sig os.Signal) {
s.Shutdown()
crons.StopALL()
websocket.Stop()
//service.TCPServer().Stop(ctx)
})
// Just run the server.
s.Run()