This commit is contained in:
孟帅
2023-05-10 23:54:50 +08:00
parent bbe655a4d8
commit 49a96750bf
314 changed files with 15138 additions and 6244 deletions

View File

@@ -1,3 +1,8 @@
// Package cmd
// @Link https://github.com/bufanyun/hotgo
// @Copyright Copyright (c) 2023 HotGo CLI
// @Author Ms <133814250@qq.com>
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
package cmd
import (
@@ -13,11 +18,11 @@ var (
Brief: "系统授权,当为第三方客户开发应用项目不想将源码和可执行文件让其随意使用时,可以通过授权的方式约束使用方。",
Description: `目前已实现,一对一、一对多、有效期授权,具体使用可以参考现有逻辑结合实际场景进行改造`,
Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {
service.TCPAuth().Start(ctx)
service.AuthClient().Start(ctx)
// 退出信号监听
signalListen(ctx, func(sig os.Signal) {
service.TCPAuth().Stop(ctx)
service.AuthClient().Stop(ctx)
})
// 信号监听
@@ -26,7 +31,6 @@ var (
case <-serverCloseSignal:
// ...
}
return
},
}

View File

@@ -3,7 +3,6 @@
// @Copyright Copyright (c) 2023 HotGo CLI
// @Author Ms <133814250@qq.com>
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
//
package cmd
import (
@@ -32,6 +31,7 @@ var (
>> 所有服务 [go run main.go] 热编译 [gf run main.go]
>> HTTP服务 [go run main.go http]
>> 消息队列 [go run main.go queue]
>> 定时任务 [go run main.go cron]
>> 查看帮助 [go run main.go help]
---------------------------------------------------------------------------------
@@ -59,6 +59,12 @@ var (
}
})
simple.SafeGo(ctx, func(ctx context.Context) {
if err := Cron.Func(ctx, parser); err != nil {
g.Log().Fatal(ctx, "cron start fail:", err)
}
})
simple.SafeGo(ctx, func(ctx context.Context) {
if err := Http.Func(ctx, parser); err != nil {
g.Log().Fatal(ctx, "http server start fail:", err)
@@ -73,14 +79,14 @@ var (
// ...
}
g.Log().Info(ctx, "service successfully closed ..")
g.Log().Debug(ctx, "service successfully closed ..")
return
},
}
)
func init() {
if err := Main.AddCommand(Http, Queue, Tools, Auth, All, Help); err != nil {
if err := Main.AddCommand(All, Http, Queue, Cron, Auth, Tools, Help); err != nil {
panic(err)
}
serverCloseSignal = make(chan struct{}, 1)

View File

@@ -0,0 +1,42 @@
// Package cmd
// @Link https://github.com/bufanyun/hotgo
// @Copyright Copyright (c) 2023 HotGo CLI
// @Author Ms <133814250@qq.com>
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
package cmd
import (
"context"
"github.com/gogf/gf/v2/os/gcmd"
"hotgo/internal/crons"
"hotgo/internal/service"
"os"
)
var (
Cron = &gcmd.Command{
Name: "cron",
Brief: "定时任务用来部署一些可独立运行的定时任务通过tcp方式和后台保持长连接通讯动态调整任务属性。",
Description: ``,
Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {
// 启动定时任务
service.SysCron().StartCron(ctx)
// tcp客户端
service.CronClient().Start(ctx)
// 退出信号监听
signalListen(ctx, func(sig os.Signal) {
service.CronClient().Stop(ctx)
crons.StopALL()
serverCloseSignal <- struct{}{}
})
select {
case <-serverCloseSignal:
// ...
}
return
},
}
)

View File

@@ -38,7 +38,10 @@ var (
r.Response.Writeln("403 - 网站拒绝显示此网页")
})
// 请求结束事件回调
// 初始化请求前回调
s.BindHookHandler("/*any", ghttp.HookBeforeServe, service.Hook().BeforeServe)
// 请求响应结束后回调
s.BindHookHandler("/*any", ghttp.HookAfterOutput, service.Hook().AfterOutput)
s.Group("/", func(group *ghttp.RouterGroup) {
@@ -68,11 +71,8 @@ var (
addons.RegisterModulesRouter(ctx, group)
})
// 启动定时任
service.SysCron().StartCron(ctx)
//// 启动TCP服务
//service.TCPServer().Start(ctx)
// 启动tcp服
service.TCPServer().Start(ctx)
// https
setSSL(ctx, s)
@@ -82,7 +82,7 @@ var (
s.Shutdown()
crons.StopALL()
websocket.Stop()
//service.TCPServer().Stop(ctx)
service.TCPServer().Stop(ctx)
})
// Just run the server.

View File

@@ -10,6 +10,7 @@ import (
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gcmd"
"hotgo/internal/library/queue"
"hotgo/utility/simple"
)
var (
@@ -18,9 +19,21 @@ var (
Brief: "消息队列",
Description: ``,
Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {
g.Log().Debug(ctx, "start queue consumer..")
queue.StartConsumersListener(ctx)
g.Log().Debug(ctx, "start queue consumer success..")
simple.SafeGo(ctx, func(ctx context.Context) {
g.Log().Debug(ctx, "start queue consumer..")
queue.StartConsumersListener(ctx)
g.Log().Debug(ctx, "start queue consumer success..")
})
// 信号监听
signalListen(ctx, signalHandlerForOverall)
select {
case <-serverCloseSignal:
// ...
}
g.Log().Debug(ctx, "queue successfully closed ..")
return
},
}

View File

@@ -3,7 +3,6 @@
// @Copyright Copyright (c) 2023 HotGo CLI
// @Author Ms <133814250@qq.com>
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
//
package cmd
import (
@@ -16,7 +15,7 @@ import (
var (
Tools = &gcmd.Command{
Name: "tools",
Brief: "工具",
Brief: "常用工具",
Description: ``,
Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {
flags := parser.GetOptAll()
@@ -39,12 +38,12 @@ var (
g.Log().Fatal(ctx, "casbin参数不能为空")
return
}
casbin.InitEnforcer(ctx)
if a1 == "clear" {
if err := casbin.Clear(ctx); err != nil {
return err
}
} else if a1 == "refresh" {
casbin.InitEnforcer(ctx)
if err := casbin.Refresh(ctx); err != nil {
return err
}