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