调整
This commit is contained in:
parent
cd54354df2
commit
b692da3054
@ -14,9 +14,10 @@ type INode interface {
|
||||
MapKey() string
|
||||
}
|
||||
|
||||
// 服务节点信息,TypeId及Type都是标记同类型的节点,Name是区别该节点与其它节点的字段
|
||||
type ServiceNode struct {
|
||||
ServiceId int32 `json:"service_id"` // 服务id 由proto定义,gate通过该字段找到serviceNode
|
||||
Name string `json:"name"` // 服务名 多个同类服务依赖name区分:1,2,3等等
|
||||
TypeId int `json:"type_id"` // 服务类型id,与Type字段功能一样, 由proto定义,gate通过该字段找到这类服务的所有节点信息
|
||||
Name string `json:"name"` // 服务名 多个同类服务依赖name区分:lobby1,lobby2,lobby3等等
|
||||
Type string `json:"type"` // 服务类型:lobby, game, gate等等
|
||||
Address string `json:"address"` // 地址
|
||||
Port int `json:"port"` // 端口
|
||||
@ -33,7 +34,7 @@ func (s ServiceNode) EtcdRootKey() string {
|
||||
}
|
||||
|
||||
func (s ServiceNode) MapKey() string {
|
||||
return fmt.Sprintf("%s-%s", s.Type, s.Name)
|
||||
return s.Name
|
||||
}
|
||||
|
||||
type TopicNode struct {
|
||||
@ -50,5 +51,5 @@ func (s TopicNode) EtcdRootKey() string {
|
||||
}
|
||||
|
||||
func (s TopicNode) MapKey() string {
|
||||
return fmt.Sprintf("%s", s.Name)
|
||||
return s.Name
|
||||
}
|
||||
|
@ -172,11 +172,11 @@ func (s *BaseService) Run() {
|
||||
}
|
||||
|
||||
func (s *BaseService) Log(format string, a ...any) string {
|
||||
head := fmt.Sprintf("service:%v-%v ", s.type_, s.name)
|
||||
head := fmt.Sprintf("service:%v ", s.name)
|
||||
return head + fmt.Sprintf(format, a...)
|
||||
}
|
||||
|
||||
func (s *BaseService) Err(format string, a ...any) error {
|
||||
head := fmt.Sprintf("service:%v-%v ", s.type_, s.name)
|
||||
head := fmt.Sprintf("service:%v ", s.name)
|
||||
return fmt.Errorf(head + fmt.Sprintf(format, a...))
|
||||
}
|
||||
|
@ -1,18 +1,23 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
const (
|
||||
extTopic = ".topic"
|
||||
extGroup = ".group"
|
||||
)
|
||||
|
||||
// 每个服务都有自己的服务topic
|
||||
func Topic(s IService) string {
|
||||
return fmt.Sprintf("%v-%v.topic", s.Type(), s.Name())
|
||||
return s.Name() + extTopic
|
||||
}
|
||||
|
||||
func TopicEx(serviceName string) string {
|
||||
return serviceName + extTopic
|
||||
}
|
||||
|
||||
func GroupTopic(s IService) string {
|
||||
return s.Type() + ".topic"
|
||||
return s.Type() + extTopic
|
||||
}
|
||||
|
||||
func GroupQueue(s IService) string {
|
||||
return s.Type() + ".group"
|
||||
return s.Type() + extGroup
|
||||
}
|
||||
|
@ -5,54 +5,59 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
var rd *rand.Rand
|
||||
|
||||
func init() {
|
||||
rand.New(rand.NewSource(time.Now().UnixNano()))
|
||||
rd = rand.New(rand.NewSource(time.Now().UnixNano()))
|
||||
}
|
||||
|
||||
var Int = rand.Int
|
||||
func Int() int {
|
||||
return rd.Int()
|
||||
}
|
||||
|
||||
func Intn(n int) int {
|
||||
return rand.Intn(n)
|
||||
// [0,n)
|
||||
func IntN(n int) int {
|
||||
return rd.Intn(n)
|
||||
}
|
||||
|
||||
func Int31() int32 {
|
||||
return rand.Int31()
|
||||
return rd.Int31()
|
||||
}
|
||||
|
||||
func Int31n(n int32) int32 {
|
||||
return rand.Int31n(n)
|
||||
return rd.Int31n(n)
|
||||
}
|
||||
|
||||
func Int63() int64 {
|
||||
return rand.Int63()
|
||||
return rd.Int63()
|
||||
}
|
||||
|
||||
func Int63n(n int64) int64 {
|
||||
return rand.Int63n(n)
|
||||
return rd.Int63n(n)
|
||||
}
|
||||
|
||||
func Uint32() uint32 {
|
||||
return rand.Uint32()
|
||||
return rd.Uint32()
|
||||
}
|
||||
|
||||
func Uint64() uint64 {
|
||||
return rand.Uint64()
|
||||
return rd.Uint64()
|
||||
}
|
||||
|
||||
func Float32() float32 {
|
||||
return rand.Float32()
|
||||
return rd.Float32()
|
||||
}
|
||||
|
||||
func Float64() float64 {
|
||||
return rand.Float64()
|
||||
return rd.Float64()
|
||||
}
|
||||
|
||||
func Perm(n int) []int {
|
||||
return rand.Perm(n)
|
||||
return rd.Perm(n)
|
||||
}
|
||||
|
||||
func Read(p []byte) (n int, err error) {
|
||||
return rand.Read(p)
|
||||
return rd.Read(p)
|
||||
}
|
||||
|
||||
func Shuffle[T any](slice []T) {
|
||||
|
@ -29,7 +29,7 @@ func WeightRandom[W int | uint | int32 | uint32 | int64 | uint64, T any](m map[W
|
||||
return items[0].Data, nil
|
||||
}
|
||||
|
||||
r := Intn(int(sum))
|
||||
r := IntN(int(sum))
|
||||
for _, item := range items {
|
||||
r -= int(item.Weight)
|
||||
if r < 0 {
|
||||
|
@ -14,7 +14,7 @@ import (
|
||||
|
||||
// 设置时区
|
||||
// reverse:给Now()设置时传false,解析系统时区输出的字符串/时间戳时传true
|
||||
func setLocation(c carbon.Carbon, offsets ...int) carbon.Carbon {
|
||||
func setLocation(c *carbon.Carbon, offsets ...int) *carbon.Carbon {
|
||||
var loc *time.Location
|
||||
if len(offsets) > 0 {
|
||||
loc = time.FixedZone("CUS", offsets[len(offsets)-1])
|
||||
@ -25,7 +25,7 @@ func setLocation(c carbon.Carbon, offsets ...int) carbon.Carbon {
|
||||
return c.SetLocation(loc)
|
||||
}
|
||||
|
||||
func set(c carbon.Carbon, offsets ...int) carbon.Carbon {
|
||||
func set(c *carbon.Carbon, offsets ...int) *carbon.Carbon {
|
||||
// 设置周起始
|
||||
c = c.SetWeekStartsAt(WeekStartsAt)
|
||||
// 设置时区
|
||||
@ -33,18 +33,18 @@ func set(c carbon.Carbon, offsets ...int) carbon.Carbon {
|
||||
return c
|
||||
}
|
||||
|
||||
func Now(offsets ...int) (c carbon.Carbon) {
|
||||
func Now(offsets ...int) (c *carbon.Carbon) {
|
||||
c = carbon.Now().AddSeconds(nowOffset)
|
||||
c = set(c, offsets...)
|
||||
return
|
||||
}
|
||||
|
||||
func ConvertToCarbon[T time.Time | carbon.Carbon | int64](t T, offsets ...int) carbon.Carbon {
|
||||
var c carbon.Carbon
|
||||
func ConvertToCarbon[T time.Time | *carbon.Carbon | int64](t T, offsets ...int) *carbon.Carbon {
|
||||
var c *carbon.Carbon
|
||||
switch v := any(t).(type) {
|
||||
case time.Time:
|
||||
c = set(carbon.CreateFromStdTime(v), offsets...)
|
||||
case carbon.Carbon:
|
||||
case *carbon.Carbon:
|
||||
c = set(v, offsets...)
|
||||
case int64:
|
||||
c = set(carbon.CreateFromTimestamp(v), offsets...)
|
||||
@ -58,7 +58,7 @@ func IsTodayTimestamp[T int | int64](timestamp T, offsets ...int) bool {
|
||||
}
|
||||
|
||||
// IsToday 判断时间是否为今天
|
||||
func IsToday[T time.Time | carbon.Carbon | int64](t T, offsets ...int) bool {
|
||||
func IsToday[T time.Time | *carbon.Carbon | int64](t T, offsets ...int) bool {
|
||||
c := ConvertToCarbon(t, offsets...)
|
||||
|
||||
return c.ToDateString() == Now().ToDateString()
|
||||
@ -70,7 +70,7 @@ func IsToday[T time.Time | carbon.Carbon | int64](t T, offsets ...int) bool {
|
||||
// now := time.Now()
|
||||
// before := time.Now().Add(-time.Hour)
|
||||
// IsBeforeNow(after) // true
|
||||
func IsBeforeNow[T time.Time | carbon.Carbon | int64](t T, offsets ...int) bool {
|
||||
func IsBeforeNow[T time.Time | *carbon.Carbon | int64](t T, offsets ...int) bool {
|
||||
return !IsAfterNow(t, offsets...)
|
||||
}
|
||||
|
||||
@ -80,11 +80,11 @@ func IsBeforeNow[T time.Time | carbon.Carbon | int64](t T, offsets ...int) bool
|
||||
// now := time.Now()
|
||||
// after := time.Now().Add(time.Hour)
|
||||
// IsAfterNow(after) // true
|
||||
func IsAfterNow[T time.Time | carbon.Carbon | int64](t T, offsets ...int) bool {
|
||||
func IsAfterNow[T time.Time | *carbon.Carbon | int64](t T, offsets ...int) bool {
|
||||
switch v := any(t).(type) {
|
||||
case time.Time:
|
||||
return IsAfter(v, time.Now(), offsets...)
|
||||
case carbon.Carbon:
|
||||
case *carbon.Carbon:
|
||||
return IsAfter(v, Now(), offsets...)
|
||||
case int64:
|
||||
return IsAfter(v, Now().Timestamp())
|
||||
@ -98,7 +98,7 @@ func IsAfterNow[T time.Time | carbon.Carbon | int64](t T, offsets ...int) bool {
|
||||
// t1 := time.Now().Add(-time.Hour)
|
||||
// t2 := time.Now()
|
||||
// IsBefore(t1,t2) // true
|
||||
func IsBefore[T time.Time | carbon.Carbon | int64](t1, t2 T, offsets ...int) bool {
|
||||
func IsBefore[T time.Time | *carbon.Carbon | int64](t1, t2 T, offsets ...int) bool {
|
||||
return !IsAfter(t1, t2, offsets...)
|
||||
}
|
||||
|
||||
@ -107,103 +107,103 @@ func IsBefore[T time.Time | carbon.Carbon | int64](t1, t2 T, offsets ...int) boo
|
||||
// t1 := time.Now().Add(time.Hour)
|
||||
// t2 := time.Now()
|
||||
// IsAfter(t1,t2) // true
|
||||
func IsAfter[T time.Time | carbon.Carbon | int64](t1, t2 T, offsets ...int) bool {
|
||||
func IsAfter[T time.Time | *carbon.Carbon | int64](t1, t2 T, offsets ...int) bool {
|
||||
c1, c2 := ConvertToCarbon(t1, offsets...), ConvertToCarbon(t2, offsets...)
|
||||
return c1.Gt(c2)
|
||||
}
|
||||
|
||||
// TimestampToTime 将时间戳转为 carbon.Carbon 类型
|
||||
func TimestampToTime[T int | int64](timestamp T, offsets ...int) carbon.Carbon {
|
||||
func TimestampToTime[T int | int64](timestamp T, offsets ...int) *carbon.Carbon {
|
||||
return set(carbon.CreateFromTimestamp(int64(timestamp)), offsets...)
|
||||
}
|
||||
|
||||
// IsInDuration 判断某个时间在某个时间段内
|
||||
func IsInDuration[T time.Time | carbon.Carbon | int64](t, start, end T, offsets ...int) bool {
|
||||
func IsInDuration[T time.Time | *carbon.Carbon | int64](t, start, end T, offsets ...int) bool {
|
||||
return IsAfter(t, start, offsets...) && IsBefore(t, end, offsets...)
|
||||
}
|
||||
|
||||
// FormatDuration 将起止时间,格式化为 format - format
|
||||
func FormatDuration[T time.Time | carbon.Carbon | int64](start, end T, layout string, offsets ...int) string {
|
||||
func FormatDuration[T time.Time | *carbon.Carbon | int64](start, end T, layout string, offsets ...int) string {
|
||||
startC, endC := ConvertToCarbon(start, offsets...), ConvertToCarbon(end, offsets...)
|
||||
return fmt.Sprintf("%s - %s", startC.StdTime().Format(layout), endC.StdTime().Format(layout))
|
||||
}
|
||||
|
||||
func Yesterday(offsets ...int) carbon.Carbon {
|
||||
func Yesterday(offsets ...int) *carbon.Carbon {
|
||||
return Now(offsets...).SubDay().StartOfDay()
|
||||
}
|
||||
|
||||
func Today(offsets ...int) carbon.Carbon {
|
||||
func Today(offsets ...int) *carbon.Carbon {
|
||||
return Now(offsets...).StartOfDay()
|
||||
}
|
||||
|
||||
func Tomorrow(offsets ...int) carbon.Carbon {
|
||||
func Tomorrow(offsets ...int) *carbon.Carbon {
|
||||
return Now(offsets...).AddDay().StartOfDay()
|
||||
}
|
||||
|
||||
func NextNDay(n int, offsets ...int) carbon.Carbon {
|
||||
func NextNDay(n int, offsets ...int) *carbon.Carbon {
|
||||
return Now(offsets...).AddDays(n).StartOfDay()
|
||||
}
|
||||
|
||||
func LastWeek(offsets ...int) carbon.Carbon {
|
||||
func LastWeek(offsets ...int) *carbon.Carbon {
|
||||
return Now(offsets...).SubWeek().StartOfWeek()
|
||||
}
|
||||
|
||||
func ThisWeek(offsets ...int) carbon.Carbon {
|
||||
func ThisWeek(offsets ...int) *carbon.Carbon {
|
||||
return Now(offsets...).StartOfWeek()
|
||||
}
|
||||
|
||||
func NextWeek(offsets ...int) carbon.Carbon {
|
||||
func NextWeek(offsets ...int) *carbon.Carbon {
|
||||
return Now(offsets...).AddWeek().StartOfWeek()
|
||||
}
|
||||
|
||||
func NextNWeek(n int, offsets ...int) carbon.Carbon {
|
||||
func NextNWeek(n int, offsets ...int) *carbon.Carbon {
|
||||
return Now(offsets...).AddWeeks(n).StartOfWeek()
|
||||
}
|
||||
|
||||
func LastMonth(offsets ...int) carbon.Carbon {
|
||||
func LastMonth(offsets ...int) *carbon.Carbon {
|
||||
return Now(offsets...).SubMonth().StartOfMonth()
|
||||
}
|
||||
|
||||
func ThisMonth(offsets ...int) carbon.Carbon {
|
||||
func ThisMonth(offsets ...int) *carbon.Carbon {
|
||||
return Now(offsets...).StartOfMonth()
|
||||
}
|
||||
|
||||
func NextMonth(offsets ...int) carbon.Carbon {
|
||||
func NextMonth(offsets ...int) *carbon.Carbon {
|
||||
return Now(offsets...).AddMonth().StartOfMonth()
|
||||
}
|
||||
|
||||
func NextNMonth(n int, offsets ...int) carbon.Carbon {
|
||||
func NextNMonth(n int, offsets ...int) *carbon.Carbon {
|
||||
return Now(offsets...).AddMonths(n).StartOfMonth()
|
||||
}
|
||||
|
||||
func LastQuarter(offsets ...int) carbon.Carbon {
|
||||
func LastQuarter(offsets ...int) *carbon.Carbon {
|
||||
return Now(offsets...).SubQuarter().StartOfQuarter()
|
||||
}
|
||||
|
||||
func ThisQuarter(offsets ...int) carbon.Carbon {
|
||||
func ThisQuarter(offsets ...int) *carbon.Carbon {
|
||||
return Now(offsets...).StartOfQuarter()
|
||||
}
|
||||
|
||||
func NextQuarter(offsets ...int) carbon.Carbon {
|
||||
func NextQuarter(offsets ...int) *carbon.Carbon {
|
||||
return Now(offsets...).AddQuarter().StartOfQuarter()
|
||||
}
|
||||
|
||||
func NextNQuarter(n int, offsets ...int) carbon.Carbon {
|
||||
func NextNQuarter(n int, offsets ...int) *carbon.Carbon {
|
||||
return Now(offsets...).AddQuarters(n).StartOfQuarter()
|
||||
}
|
||||
|
||||
func LastYear(offsets ...int) carbon.Carbon {
|
||||
func LastYear(offsets ...int) *carbon.Carbon {
|
||||
return Now(offsets...).SubYear().StartOfYear()
|
||||
}
|
||||
|
||||
func ThisYear(offsets ...int) carbon.Carbon {
|
||||
func ThisYear(offsets ...int) *carbon.Carbon {
|
||||
return Now(offsets...).StartOfYear()
|
||||
}
|
||||
|
||||
func NextYear(offsets ...int) carbon.Carbon {
|
||||
func NextYear(offsets ...int) *carbon.Carbon {
|
||||
return Now(offsets...).AddYear().StartOfYear()
|
||||
}
|
||||
|
||||
func NextNYear(n int, offsets ...int) carbon.Carbon {
|
||||
func NextNYear(n int, offsets ...int) *carbon.Carbon {
|
||||
return Now(offsets...).AddYears(n).StartOfYear()
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user