更新gf版本到v2.2.4

This commit is contained in:
孟帅 2022-11-25 23:22:44 +08:00
parent 29bda0dcdd
commit e990ce28a1
9 changed files with 107 additions and 48 deletions

View File

@ -1,8 +1,8 @@
# HotGO-V2
# HotGo-V2
<div align="center">
<img width="140px" src="https://bufanyun.cn-bj.ufileos.com/hotgo/logo.sig.png">
<p>
<h1>HotGO V2.0</h1>
<h1>HotGo V2.0</h1>
</p>
<p align="center">
<a href="https://goframe.org/pages/viewpage.action?pageId=1114119" target="_blank">
@ -74,7 +74,7 @@
## 环境要求
- node版本 >= v16.0.0
- golang版本 >= v1.18
- gf版本 >=2.1
- gf版本 >=v2.2.4 (会保持同步gf最新版本gf小版本更新可能存在兼容问题旧版本需自行处理如非必要不建议更新)
- IDE推荐Goland
- mysql版本 >=5.7
- redis版本 >=3.0
@ -130,6 +130,9 @@ VITE_PROXY=[["/admin","http://你的IP:8000/admin"]]
```shell script
cd server
# 设置国内代理,如果已经设置好了代理可以跳过
go env -w GOPROXY=https://goproxy.io,direct
# 更新包
go mod tidy
@ -137,7 +140,7 @@ VITE_PROXY=[["/admin","http://你的IP:8000/admin"]]
go run main.go
# 启动所有服务
gf run main.go --args "all"
go run main.go all
# 如果顺利至此到浏览器打开http://你的IP:8000/admin即可看到后台登录地址
# 登录账号admin, 密码123456
@ -155,7 +158,7 @@ web端
yarn install
# 启动web项目
npm run dev
yarn dev
# 如果顺利至此到浏览器打开http://你的IP:8001/admin
```
@ -203,7 +206,7 @@ web端
## 交流QQ群
交流群①190966648 <a target="_blank" href="https://qm.qq.com/cgi-bin/qm/qr?k=mJafkvme3VNyiQlCFIFNRtY8Xlr7pj9U&jump_from=webapi&authKey=jL10vIESr+vO8wpxwyd6DlChzkrbHpzN9uhAsIHgAinL/Vvd+nvuRyilf2UqUlCy"><img border="0" src="//pub.idqqimg.com/wpa/images/group.png" alt="HotGo框架交流1群" title="HotGo框架交流1群"></a>
交流群①190966648 <a target="_blank" href="https://qm.qq.com/cgi-bin/qm/qr?k=mJafkvme3VNyiQlCFIFNRtY8Xlr7pj9U&jump_from=webapi&authKey=jL10vIESr+vO8wpxwyd6DlChzkrbHpzN9uhAsIHgAinL/Vvd+nvuRyilf2UqUlCy"><img border="0" src="https://bufanyun.cn-bj.ufileos.com/hotgo/group.png" alt="HotGo框架交流1群" title="HotGo框架交流1群"></a>
> <img src="https://bufanyun.cn-bj.ufileos.com/hotgo/hotgo1qun.png" width="400px"/>

View File

@ -11,12 +11,11 @@ require (
github.com/dgrijalva/jwt-go v3.2.0+incompatible
github.com/go-resty/resty/v2 v2.7.0
github.com/gogf/gf/contrib/drivers/mysql/v2 v2.2.0-beta2
github.com/gogf/gf/v2 v2.2.0-beta2
github.com/gogf/gf/v2 v2.2.4
github.com/golang/mock v1.6.0 // indirect
github.com/gomodule/redigo v1.8.8
github.com/google/btree v1.1.2 // indirect
github.com/gorilla/websocket v1.5.0
github.com/h2non/filetype v1.1.3
github.com/kayon/iploc v0.0.0-20200312105652-bda3e968a794
github.com/mattn/go-colorable v0.1.12 // indirect
github.com/mojocn/base64Captcha v1.3.5

View File

@ -127,8 +127,8 @@ github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg78
github.com/gogf/gf/contrib/drivers/mysql/v2 v2.2.0-beta2 h1:QgVPXrGp8wJx18HIOsNATaIiHjXsd/Rk1F1QyxfWv+g=
github.com/gogf/gf/contrib/drivers/mysql/v2 v2.2.0-beta2/go.mod h1:z+/0qiOwMroAnj5ESuobTv0l5P83rf+XR3r6Fj8WJyk=
github.com/gogf/gf/v2 v2.0.0/go.mod h1:apktt6TleWtCIwpz63vBqUnw8MX8gWKoZyxgDpXFtgM=
github.com/gogf/gf/v2 v2.2.0-beta2 h1:XDx9dzUf3/9HRkSSZdW7XnI3gvtgpoKpDkP2ZsKlf/4=
github.com/gogf/gf/v2 v2.2.0-beta2/go.mod h1:thvkyb43RWUu/m05sRm4CbH9r7t7/FrW2M56L9Ystwk=
github.com/gogf/gf/v2 v2.2.4 h1:Y2c0F4dDDYlQswHPtoGJ0l9kvQjE0a9jmM02qCAZoqo=
github.com/gogf/gf/v2 v2.2.4/go.mod h1:thvkyb43RWUu/m05sRm4CbH9r7t7/FrW2M56L9Ystwk=
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
@ -208,8 +208,6 @@ github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWm
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/grokify/html-strip-tags-go v0.0.1 h1:0fThFwLbW7P/kOiTBs03FsJSV9RM2M/Q/MOnCQxKMo0=
github.com/grokify/html-strip-tags-go v0.0.1/go.mod h1:2Su6romC5/1VXOQMaWL2yb618ARB8iVo6/DR99A6d78=
github.com/h2non/filetype v1.1.3 h1:FKkx9QbD7HR/zjK1Ia5XiBsq9zdLi5Kf3zGyFTAFkGg=
github.com/h2non/filetype v1.1.3/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY=
github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=

View File

@ -10,7 +10,7 @@ import (
"context"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gcmd"
"github.com/gogf/gf/v2/os/grpool"
"hotgo/utility/simple"
)
var (
@ -20,13 +20,13 @@ var (
欢迎使用HotGo!
---------------------------------------------------------------------------------
启动服务
>> HTTP服务 [gf run main.go --args "http"]
>> 消息队列 [gf run main.go --args "queue"]
>> 所有服务 [gf run main.go --args "all"]
>> HTTP服务 [go run main.go http]
>> 消息队列 [go run main.go queue]
>> 所有服务 [go run main.go all]
---------------------------------------------------------------------------------
工具
>> 释放casbin权限用于清理无效的权限设置 [gf run main.go --args "tools -m=casbin -a1=refresh"]
>> 释放casbin权限用于清理无效的权限设置 [go run main.go tools -m=casbin -a1=refresh]
`,
}
@ -46,22 +46,17 @@ var (
Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {
g.Log().Info(ctx, "start all server")
if err = grpool.AddWithRecover(ctx, func(ctx context.Context) {
simple.SafeGo(ctx, func(ctx context.Context) {
if err := Http.Func(ctx, parser); err != nil {
g.Log().Fatal(ctx, "http server start fail:", err)
}
}); err != nil {
return
}
})
if err = grpool.AddWithRecover(ctx, func(ctx context.Context) {
simple.SafeGo(ctx, func(ctx context.Context) {
if err := Queue.Func(ctx, parser); err != nil {
g.Log().Fatal(ctx, "queue consumer start fail:", err)
}
}); err != nil {
g.Log().Fatal(ctx, "queue consumer start fail2:", err)
return
}
})
// 信号监听
signalListen(ctx, signalHandlerForOverall)

View File

@ -8,11 +8,10 @@ package cmd
import (
"context"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gproc"
"github.com/gogf/gf/v2/os/grpool"
"hotgo/internal/crons"
"hotgo/internal/websocket"
"hotgo/utility/simple"
"os"
)
@ -29,12 +28,9 @@ func signalHandlerForOverall(sig os.Signal) {
}
func signalListen(ctx context.Context, handler ...gproc.SigHandler) {
err := grpool.AddWithRecover(ctx, func(ctx context.Context) {
simple.SafeGo(ctx, func(ctx context.Context) {
gproc.AddSigHandlerShutdown(handler...)
gproc.Listen()
})
if err != nil {
g.Log().Fatal(ctx, "signalListen Fatal:", err)
return
}
}

View File

@ -10,11 +10,11 @@ import (
"context"
"github.com/gogf/gf/v2/errors/gerror"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/grpool"
"hotgo/api/backend/monitor"
"hotgo/internal/consts"
"hotgo/internal/model/input/form"
"hotgo/internal/websocket"
"hotgo/utility/simple"
"hotgo/utility/useragent"
"sort"
)
@ -36,13 +36,11 @@ func (c *cMonitor) Offline(ctx context.Context, req *monitor.OfflineReq) (res *m
return
}
err = grpool.AddWithRecover(ctx, func(ctx context.Context) {
simple.SafeGo(ctx, func(ctx context.Context) {
websocket.SendSuccess(client, "kick")
websocket.Close(client)
})
if err != nil {
return nil, err
}
return res, nil
}

View File

@ -9,10 +9,9 @@ package global
import (
"context"
"fmt"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/grpool"
"github.com/gogf/gf/v2/os/gtime"
"hotgo/internal/library/location"
"hotgo/utility/simple"
"os"
)
@ -29,14 +28,9 @@ func Init(ctx context.Context) {
}
func loadMonitor(ctx context.Context) {
err := grpool.AddWithRecover(ctx, func(ctx context.Context) {
simple.SafeGo(ctx, func(ctx context.Context) {
MonitorData.STartTime = gtime.Now()
MonitorData.IntranetIP, _ = location.GetLocalIP()
MonitorData.PublicIP, _ = location.GetPublicIP()
})
if err != nil {
g.Log().Fatal(ctx, "global loadMonitor Fatal:", err)
return
}
}

View File

@ -9,7 +9,6 @@ package admin
import (
"context"
"github.com/gogf/gf/v2/errors/gerror"
"github.com/gogf/gf/v2/os/grpool"
"github.com/gogf/gf/v2/os/gtime"
"hotgo/internal/consts"
"hotgo/internal/dao"
@ -18,6 +17,7 @@ import (
"hotgo/internal/websocket"
"hotgo/utility/charset"
"hotgo/utility/convert"
"hotgo/utility/simple"
"strings"
)
@ -75,7 +75,7 @@ func (s *sAdminNotice) Edit(ctx context.Context, in adminin.NoticeEditInp) (err
Event: "notice",
Data: in,
}
grpool.AddWithRecover(ctx, func(ctx context.Context) {
simple.SafeGo(ctx, func(ctx context.Context) {
if len(memberIds) == 0 {
websocket.SendToAll(response)
} else {

View File

@ -0,0 +1,76 @@
// Package simple
// @Link https://github.com/bufanyun/hotgo
// @Copyright Copyright (c) 2022 HotGo CLI
// @Author Ms <133814250@qq.com>
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
//
package simple
import (
"context"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/glog"
"github.com/gogf/gf/v2/util/gconv"
)
func SafeGo(ctx context.Context, f func(ctx context.Context), level ...interface{}) {
go func() {
defer func() {
if err := recover(); err != nil {
var newLevel = glog.LEVEL_ERRO
if len(level) > 0 {
newLevel = gconv.Int(level[0])
}
Logf(newLevel, ctx, "SafeGo failed err:%+v", err)
}
}()
f(ctx)
}()
}
func Logf(level int, ctx context.Context, format string, v ...interface{}) {
switch level {
case glog.LEVEL_DEBU:
g.Log().Debugf(ctx, format, v)
case glog.LEVEL_INFO:
g.Log().Infof(ctx, format, v)
case glog.LEVEL_NOTI:
g.Log().Noticef(ctx, format, v)
case glog.LEVEL_WARN:
g.Log().Warningf(ctx, format, v)
case glog.LEVEL_ERRO:
g.Log().Errorf(ctx, format, v)
case glog.LEVEL_CRIT:
g.Log().Critical(ctx, format, v)
case glog.LEVEL_PANI:
g.Log().Panicf(ctx, format, v)
case glog.LEVEL_FATA:
g.Log().Fatalf(ctx, format, v)
default:
g.Log().Error(ctx, "Logf level not find")
}
}
func Log(level int, ctx context.Context, v ...interface{}) {
switch level {
case glog.LEVEL_DEBU:
g.Log().Debug(ctx, v)
case glog.LEVEL_INFO:
g.Log().Info(ctx, v)
case glog.LEVEL_NOTI:
g.Log().Notice(ctx, v)
case glog.LEVEL_WARN:
g.Log().Warning(ctx, v)
case glog.LEVEL_ERRO:
g.Log().Error(ctx, v)
case glog.LEVEL_CRIT:
g.Log().Critical(ctx, v)
case glog.LEVEL_PANI:
g.Log().Panic(ctx, v)
case glog.LEVEL_FATA:
g.Log().Fatal(ctx, v)
default:
g.Log().Error(ctx, "Logf level not find")
}
}