daemon模式写入序修正
This commit is contained in:
@@ -55,6 +55,8 @@ func RunDaemon(args ...string) error {
|
|||||||
apiurls.BaseUrl = "https://srta.algo.com.cn"
|
apiurls.BaseUrl = "https://srta.algo.com.cn"
|
||||||
case "prd":
|
case "prd":
|
||||||
apiurls.BaseUrl = "https://api.rta.qq.com"
|
apiurls.BaseUrl = "https://api.rta.qq.com"
|
||||||
|
case "dev":
|
||||||
|
apiurls.BaseUrl = "http://localhost:8080"
|
||||||
default:
|
default:
|
||||||
err = fmt.Errorf("SRTA_ENV is not demo or prd")
|
err = fmt.Errorf("SRTA_ENV is not demo or prd")
|
||||||
slog.Error("Env", "err", err)
|
slog.Error("Env", "err", err)
|
||||||
@@ -76,7 +78,11 @@ func RunDaemon(args ...string) error {
|
|||||||
mux.HandleFunc("/read", daemon.httpRead)
|
mux.HandleFunc("/read", daemon.httpRead)
|
||||||
mux.HandleFunc("/write", daemon.httpWrite)
|
mux.HandleFunc("/write", daemon.httpWrite)
|
||||||
|
|
||||||
daemonPort := ":8080"
|
daemonPort := os.Getenv("SRTA_PORT")
|
||||||
|
if strings.TrimSpace(daemonPort) == "" {
|
||||||
|
daemonPort = "8080"
|
||||||
|
}
|
||||||
|
daemonPort = ":" + daemonPort
|
||||||
svrHttp := http.Server{
|
svrHttp := http.Server{
|
||||||
Addr: daemonPort,
|
Addr: daemonPort,
|
||||||
Handler: mux,
|
Handler: mux,
|
||||||
@@ -275,6 +281,12 @@ func (d *Daemon) parseQuery(q url.Values, lineNum int) (writeItem *saasapi.Write
|
|||||||
writeItem = &saasapi.WriteItem{
|
writeItem = &saasapi.WriteItem{
|
||||||
Userid: userid,
|
Userid: userid,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 临时存储,按index排序后再写入
|
||||||
|
u8Map := make(map[uint64]uint8)
|
||||||
|
u32Map := make(map[uint64]uint32)
|
||||||
|
flagMap := make(map[uint64]*saasapi.FlagWithExpire)
|
||||||
|
|
||||||
for key, value := range q {
|
for key, value := range q {
|
||||||
parts := strings.Split(strings.ToLower(key), ".")
|
parts := strings.Split(strings.ToLower(key), ".")
|
||||||
if len(parts) == 2 {
|
if len(parts) == 2 {
|
||||||
@@ -297,18 +309,10 @@ func (d *Daemon) parseQuery(q url.Values, lineNum int) (writeItem *saasapi.Write
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if writeItem.GetWriteBytes() == nil {
|
if _, exists := u8Map[index]; !exists {
|
||||||
writeItem.WriteBytes = &saasapi.Bytes{}
|
u8Map[index] = uint8(nValue)
|
||||||
}
|
}
|
||||||
|
|
||||||
if writeItem.GetWriteBytes().GetIndex_1()&(1<<(index-1)) > 0 {
|
|
||||||
// 已经被写入过数据,跳过
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
writeItem.GetWriteBytes().Bytes = append(writeItem.GetWriteBytes().Bytes, uint8(nValue))
|
|
||||||
writeItem.GetWriteBytes().Index_1 |= 1 << (index - 1)
|
|
||||||
|
|
||||||
case "u32":
|
case "u32":
|
||||||
index, err := strconv.ParseUint(parts[1], 10, 8)
|
index, err := strconv.ParseUint(parts[1], 10, 8)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -326,17 +330,10 @@ func (d *Daemon) parseQuery(q url.Values, lineNum int) (writeItem *saasapi.Write
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if writeItem.GetWriteUint32S() == nil {
|
if _, exists := u32Map[index]; !exists {
|
||||||
writeItem.WriteUint32S = &saasapi.Uint32S{}
|
u32Map[index] = uint32(nValue)
|
||||||
}
|
}
|
||||||
|
|
||||||
if writeItem.GetWriteUint32S().GetIndex_1()&(1<<(index-1)) > 0 {
|
|
||||||
// 已经被写入过数据,跳过
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
writeItem.GetWriteUint32S().Uint32S = append(writeItem.GetWriteUint32S().Uint32S, uint32(nValue))
|
|
||||||
writeItem.GetWriteUint32S().Index_1 |= 1 << (index - 1)
|
|
||||||
case "flag":
|
case "flag":
|
||||||
index, err := strconv.ParseUint(parts[1], 10, 8)
|
index, err := strconv.ParseUint(parts[1], 10, 8)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -348,7 +345,11 @@ func (d *Daemon) parseQuery(q url.Values, lineNum int) (writeItem *saasapi.Write
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
flag := saasapi.FlagWithExpire{}
|
if _, exists := flagMap[index]; exists {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
flag := &saasapi.FlagWithExpire{}
|
||||||
switch strings.ToLower(value[0]) {
|
switch strings.ToLower(value[0]) {
|
||||||
case "true":
|
case "true":
|
||||||
flag.Flag = true
|
flag.Flag = true
|
||||||
@@ -378,20 +379,43 @@ func (d *Daemon) parseQuery(q url.Values, lineNum int) (writeItem *saasapi.Write
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if writeItem.GetWriteFlagsWithExpire() == nil {
|
flagMap[index] = flag
|
||||||
writeItem.WriteFlagsWithExpire = &saasapi.FlagsWithExpire{}
|
|
||||||
}
|
|
||||||
|
|
||||||
if writeItem.GetWriteFlagsWithExpire().GetIndex_1()&(1<<(index-1)) > 0 {
|
|
||||||
// 已经被写入过数据,跳过
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
writeItem.GetWriteFlagsWithExpire().FlagsWithExpire = append(writeItem.GetWriteFlagsWithExpire().FlagsWithExpire, &flag)
|
|
||||||
writeItem.GetWriteFlagsWithExpire().Index_1 |= 1 << (index - 1)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 按index顺序写入u8
|
||||||
|
if len(u8Map) > 0 {
|
||||||
|
writeItem.WriteBytes = &saasapi.Bytes{}
|
||||||
|
for i := uint64(1); i <= uint64(saasapi.MAX_U8); i++ {
|
||||||
|
if v, exists := u8Map[i]; exists {
|
||||||
|
writeItem.WriteBytes.Bytes = append(writeItem.WriteBytes.Bytes, v)
|
||||||
|
writeItem.WriteBytes.Index_1 |= 1 << (i - 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 按index顺序写入u32
|
||||||
|
if len(u32Map) > 0 {
|
||||||
|
writeItem.WriteUint32S = &saasapi.Uint32S{}
|
||||||
|
for i := uint64(1); i <= uint64(saasapi.MAX_U32); i++ {
|
||||||
|
if v, exists := u32Map[i]; exists {
|
||||||
|
writeItem.WriteUint32S.Uint32S = append(writeItem.WriteUint32S.Uint32S, v)
|
||||||
|
writeItem.WriteUint32S.Index_1 |= 1 << (i - 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 按index顺序写入flag
|
||||||
|
if len(flagMap) > 0 {
|
||||||
|
writeItem.WriteFlagsWithExpire = &saasapi.FlagsWithExpire{}
|
||||||
|
for i := uint64(1); i <= uint64(saasapi.MAX_FLAG); i++ {
|
||||||
|
if v, exists := flagMap[i]; exists {
|
||||||
|
writeItem.WriteFlagsWithExpire.FlagsWithExpire = append(writeItem.WriteFlagsWithExpire.FlagsWithExpire, v)
|
||||||
|
writeItem.WriteFlagsWithExpire.Index_1 |= 1 << (i - 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
1
datasample/.gitignore
vendored
Normal file
1
datasample/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
_*
|
||||||
Reference in New Issue
Block a user