淇敼锛?銆佸皢鏃ュ織鑷畾涔夊啓鍏ユ棩蹇楁枃浠?zhub.log 2銆佸叾浠栦紭鍖?

git-svn-id: svn://47.119.165.148/zhub@164 e63fbceb-bcc3-4977-ac22-735b83d8d0f4
This commit is contained in:
lxy
2023-04-23 12:09:03 +00:00
parent c4709e2529
commit 4911d059a2
7 changed files with 85 additions and 20 deletions

13
main.go
View File

@@ -9,11 +9,14 @@ import (
"zhub/zsub"
)
func main() {
server := true
confPath := "app.conf"
addr := ""
var (
dir, _ = os.Getwd()
confPath = dir + "/app.ini" // 配置文件地址
server = true
addr = "" // 服务地址
)
func main() {
for _, arg := range os.Args[1:] {
if strings.EqualFold(arg, "cli") {
server = false
@@ -35,7 +38,7 @@ func main() {
switch os.Args[2] {
case "timer":
cli.Cmd("reload-timer")
case "shutdown":
case "shutdown", "stop":
cli.Cmd("shutdown")
}
cli.Close()

View File

@@ -1,6 +1,6 @@
SET GOOS=linux
SET GOARCH=amd64
go build -o zhub.sh -ldflags "-s -w" ./main.go
go build -o zhub.sh -ldflags "-s -w"
upx -9 zhub.sh
rem scp zhub.sh dev:/opt/zhub

View File

@@ -10,12 +10,14 @@ import (
)
var (
dir, _ = os.Getwd()
config = make(map[string]string)
LogDebug bool
DataDir = ""
datadir = dir + "/data"
)
func LoadConf(path string) {
//log.Println("APP_CONF =", path)
f, err := os.Open(path)
if err != nil {
log.Panicln(err)
@@ -55,8 +57,14 @@ func LoadConf(path string) {
}
LogDebug = strings.EqualFold(config["log.level"], "debug")
DataDir = GetStr("data.dir", "data")
os.MkdirAll(DataDir, os.ModeDir)
datadir = GetStr("data.dir", "${APP_HOME}/data")
datadir = strings.ReplaceAll(datadir, "${APP_HOME}", dir)
os.MkdirAll(datadir, os.ModeDir)
os.Chmod(datadir, 0777)
initLog()
}
func GetStr(key string, def string) string {
@@ -77,3 +85,49 @@ func GetInt(key string, def int) int {
}
return n
}
func initLog() {
defer func() {
if r := recover(); r != nil {
log.Println("initLog Err:", r)
}
}()
file, err := os.OpenFile("zhub.log", os.O_CREATE|os.O_APPEND|os.O_SYNC|os.O_RDWR, 0777)
if err != nil {
log.Println(err)
}
log.SetOutput(file)
/*
if strings.EqualFold(GetStr("log.handlers", "console"), "console") {
return
}
var logfile = GetStr("log.pattern", "${APP_HOME}/logs-200601/log-20060102.log")
c := cron.New()
fun := func() {
now := time.Now()
logfile := strings.ReplaceAll(logfile, "${APP_HOME}", dir)
logfile = now.Format(logfile)
if strings.LastIndexAny(logfile, "/") > 0 {
logdir := logfile[0:strings.LastIndexAny(logfile, "/")]
os.MkdirAll(logdir, 0666)
}
file, err := os.OpenFile(logfile, os.O_CREATE|os.O_APPEND|os.O_SYNC|os.O_RDWR, 0777)
if err != nil {
log.Println(err)
}
//log.Println("SET LOG_FILE =", file.Name())
log.SetOutput(file)
}
fun()
c.AddFunc("0 0 * * * *", fun)
go c.Run()
*/
}

View File

@@ -30,7 +30,7 @@ func msgAccept(v Message) {
}
if LogDebug {
log.Println("[", v.Conn.sn, "] rcmd: "+strings.Join(rcmd, " "))
log.Printf("[%d] rcmd: %s\n", v.Conn.sn, strings.Join(rcmd, " "))
}
if !c.auth && !strings.EqualFold("auth", rcmd[0]) && strings.EqualFold(GetStr("service.auth", "0"), "1") {
c.send("-Auth: NOAUTH Authentication required:" + rcmd[0])

View File

@@ -38,6 +38,12 @@ func Append(str string, fileName string) {
// 数据持久化
func (s *ZSub) dataStorage() {
defer func() {
if r := recover(); r != nil {
log.Println("dataStorage Recovered:", r)
}
}()
s.Lock()
defer s.Unlock()
// ========================== delay save ===========================
@@ -49,11 +55,11 @@ func (s *ZSub) dataStorage() {
s.delayup = false
}()
err := os.Remove(DataDir + "/delay.z")
err := os.Remove(datadir + "/delay.z")
if err != nil {
log.Println(err)
}
file, err := os.OpenFile(DataDir+"/delay.z", os.O_CREATE|os.O_WRONLY, os.ModeAppend)
file, err := os.OpenFile(datadir+"/delay.z", os.O_CREATE|os.O_WRONLY, os.ModeAppend)
if err != nil {
fmt.Println(err)
}
@@ -74,7 +80,7 @@ func (s *ZSub) dataStorage() {
// ========================== lock save ===========================
func() {
err := os.Remove(DataDir + "/lock.z")
err := os.Remove(datadir + "/lock.z")
if err != nil {
log.Println(err)
}
@@ -85,12 +91,12 @@ func (s *ZSub) dataStorage() {
break // 只记录获得锁的记录
}
}
Append(str, DataDir+"/lock.z")
Append(str, datadir+"/lock.z")
}()
}
func (s *ZSub) loadDelay() {
f, err := os.Open(DataDir + "/delay.z")
f, err := os.Open(datadir + "/delay.z")
if err != nil {
return
}
@@ -125,7 +131,7 @@ func (s *ZSub) loadDelay() {
}
func (s *ZSub) loadLock() {
f, err := os.Open(DataDir + "/lock.z")
f, err := os.Open(datadir + "/lock.z")
if err != nil {
return
}
@@ -171,7 +177,7 @@ var (
)
func init() {
LoadConf("app.conf")
//LoadConf("app.conf")
/*
_db, err := sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8",
GetStr("ztimer.db.user", "root"),

View File

@@ -1,6 +1,7 @@
package zsub
import (
"log"
"sync"
"sync/atomic"
)
@@ -37,9 +38,12 @@ func (g *ZGroup) appendTo(c *ZConn) {
err := c.send("message", topic, msg)
if err != nil { // 失败处理
log.Println("topic send err:", err)
g.chMsg <- msg
return
}
//log.Printf("[ %d ] topic send: %s %s\n", c.sn, topic, msg)
atomic.AddInt32(&g.offset, 1)
case <-c.stoped:
return

View File

@@ -251,8 +251,6 @@ StartServer
2、init server
*/
func StartServer(addr string) {
GetStr("data.dir", "data")
go func() {
for {
fun, ok := <-funChan
@@ -273,7 +271,7 @@ func StartServer(addr string) {
if err != nil {
log.Fatal(err)
}
log.Println("zhub.server = ", addr)
log.Println("zhub.server =", addr)
for {
conn, err := listen.Accept()