修改:简化工程包结构

git-svn-id: svn://47.119.165.148/zhub@132 e63fbceb-bcc3-4977-ac22-735b83d8d0f4
This commit is contained in:
lxy
2021-11-04 10:57:50 +00:00
parent a254269684
commit 7ca71eb838
10 changed files with 150 additions and 201 deletions

79
zsub/config.go Normal file
View File

@@ -0,0 +1,79 @@
package zsub
import (
"bufio"
"io"
"log"
"os"
"strconv"
"strings"
)
var (
config = make(map[string]string)
LogDebug bool
DataDir = ""
)
func LoadConf(path string) {
f, err := os.Open(path)
if err != nil {
log.Panicln(err)
}
reader := bufio.NewReader(f)
space := ""
for {
bytes, err := reader.ReadBytes('\n')
if err == io.EOF {
break
}
line := string(bytes)
line = strings.Trim(line, " \r\n")
if len(line) == 0 {
continue
}
if strings.Contains(line, "#") {
line = line[0:strings.Index(line, "#")]
}
switch {
case strings.EqualFold(line, ""):
case strings.Index(line, "[") == 0 && strings.Index(line, "]") > 0:
space = line[1:strings.Index(line, "]")]
space = strings.Trim(space, " ")
case strings.Index(line, "=") > 0:
arr := strings.Split(line, "=")
if len(arr) < 2 {
continue
}
config[space+"."+strings.Trim(arr[0], " ")] = strings.Trim(arr[1], " ")
default:
continue
}
}
LogDebug = strings.EqualFold(config["log.level"], "debug")
DataDir = GetStr("data.dir", "data")
os.MkdirAll(DataDir, os.ModeDir)
}
func GetStr(key string, def string) string {
if len(config[key]) == 0 {
return def
}
return config[key]
}
func GetInt(key string, def int) int {
if len(config[key]) == 0 {
return def
}
n, err := strconv.Atoi(config[key])
if err != nil {
log.Println(err, "return def;")
return def
}
return n
}

61
zsub/monitor.go Normal file
View File

@@ -0,0 +1,61 @@
package zsub
import (
"encoding/json"
"net/http"
"os"
"path"
)
func init() {
// 1.日志文件 定期分割归档
}
func StartHttp() {
dir, _ := os.Getwd()
webDir := path.Join(dir, "/public")
http.Handle("/", http.FileServer(http.Dir(webDir)))
http.HandleFunc("/info", info)
http.HandleFunc("/cleanup", cleanup)
http.HandleFunc("/retimer", retimer)
http.HandleFunc("/topic/publish", publish)
http.ListenAndServe(":1217", nil)
}
func publish(w http.ResponseWriter, r *http.Request) {
topic := r.FormValue("topic")
value := r.FormValue("value")
zsub.Publish(topic, value)
renderJson(w, "+ok")
}
// retimer 重载定时调度
func retimer(w http.ResponseWriter, r *http.Request) {
zsub.ReloadTimer()
renderJson(w, "+reload timer ok")
}
func cleanup(w http.ResponseWriter, r *http.Request) {
zsub.Clearup()
renderJson(w, "+OK")
}
func info(w http.ResponseWriter, r *http.Request) {
info := Info()
renderJson(w, info)
}
func renderJson(w http.ResponseWriter, d interface{}) {
var bytes []byte
if str, ok := d.(string); ok {
bytes = []byte(str)
} else {
bytes, _ = json.Marshal(d)
w.Header().Set("content-type", "application/json; charset=utf-8;")
}
w.Write(bytes)
}

View File

@@ -6,7 +6,6 @@ import (
"strconv"
"strings"
"time"
"zhub/conf"
)
var funChan = make(chan func(), 1000)
@@ -30,7 +29,7 @@ func msgAccept(v Message) {
return
}
if conf.LogDebug {
if LogDebug {
log.Println("[", v.Conn.sn, "] rcmd: "+strings.Join(rcmd, " "))
}

View File

@@ -10,7 +10,6 @@ import (
"strings"
"sync/atomic"
"time"
"zhub/conf"
)
var (
@@ -50,11 +49,11 @@ func (s *ZSub) dataStorage() {
s.delayup = false
}()
err := os.Remove(conf.DataDir + "/delay.z")
err := os.Remove(DataDir + "/delay.z")
if err != nil {
log.Println(err)
}
file, err := os.OpenFile(conf.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)
}
@@ -75,7 +74,7 @@ func (s *ZSub) dataStorage() {
// ========================== lock save ===========================
func() {
err := os.Remove(conf.DataDir + "/lock.z")
err := os.Remove(DataDir + "/lock.z")
if err != nil {
log.Println(err)
}
@@ -86,12 +85,12 @@ func (s *ZSub) dataStorage() {
break // 只记录获得锁的记录
}
}
Append(str, conf.DataDir+"/lock.z")
Append(str, DataDir+"/lock.z")
}()
}
func (s *ZSub) loadDelay() {
f, err := os.Open(conf.DataDir + "/delay.z")
f, err := os.Open(DataDir + "/delay.z")
if err != nil {
return
}
@@ -126,7 +125,7 @@ func (s *ZSub) loadDelay() {
}
func (s *ZSub) loadLock() {
f, err := os.Open(conf.DataDir + "/lock.z")
f, err := os.Open(DataDir + "/lock.z")
if err != nil {
return
}
@@ -172,12 +171,12 @@ var (
)
func init() {
conf.Load("app.conf")
LoadConf("app.conf")
_db, err := sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8",
conf.GetStr("ztimer.db.user", "root"),
conf.GetStr("ztimer.db.pwd", "123456"),
conf.GetStr("ztimer.db.addr", "127.0.0.1:3306"),
conf.GetStr("ztimer.db.database", "zhub"),
GetStr("ztimer.db.user", "root"),
GetStr("ztimer.db.pwd", "123456"),
GetStr("ztimer.db.addr", "127.0.0.1:3306"),
GetStr("ztimer.db.database", "zhub"),
))
if err != nil {
log.Println(err)

View File

@@ -12,7 +12,6 @@ import (
"sync/atomic"
"time"
"unicode/utf8"
"zhub/conf"
)
var (
@@ -251,7 +250,7 @@ ServerStart
2、init server
*/
func ServerStart(addr string) {
conf.GetStr("data.dir", "data")
GetStr("data.dir", "data")
go func() {
for {
@@ -523,7 +522,3 @@ func (s *ZSub) noSubscribe(topic string) bool {
}
return true
}
func ZSubx() *ZSub {
return zsub
}

View File

@@ -13,7 +13,6 @@ import (
"strings"
"text/template"
"time"
"zhub/conf"
)
type ZTimer struct {
@@ -167,10 +166,10 @@ func executeShell(command string) (string, error, string) {
func (s *ZSub) ReloadTimer() {
db, err := sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8",
conf.GetStr("ztimer.db.user", "root"),
conf.GetStr("ztimer.db.pwd", "123456"),
conf.GetStr("ztimer.db.addr", "127.0.0.1:3306"),
conf.GetStr("ztimer.db.database", "zhub"),
GetStr("ztimer.db.user", "root"),
GetStr("ztimer.db.pwd", "123456"),
GetStr("ztimer.db.addr", "127.0.0.1:3306"),
GetStr("ztimer.db.database", "zhub"),
))
if err != nil {