diff --git a/const.go b/const.go index 755c026..2e73691 100644 --- a/const.go +++ b/const.go @@ -1,3 +1,3 @@ package gojobs -const Version = "1.0.60" +const Version = "1.0.61" diff --git a/go.mod b/go.mod index 9291322..891d271 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/go-redis/redis/v9 v9.0.0-beta.2 github.com/jasonlvhit/gocron v0.0.1 github.com/robfig/cron/v3 v3.0.1 - go.dtapp.net/dorm v1.0.26 + go.dtapp.net/dorm v1.0.27 go.dtapp.net/goarray v1.0.1 go.dtapp.net/goip v1.0.25 go.dtapp.net/golog v1.0.29 @@ -93,8 +93,8 @@ require ( google.golang.org/genproto v0.0.0-20220812140447-cec7f5303424 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gorm.io/datatypes v1.0.7 // indirect - gorm.io/driver/mysql v1.3.5 // indirect - gorm.io/driver/postgres v1.3.8 // indirect + gorm.io/driver/mysql v1.3.6 // indirect + gorm.io/driver/postgres v1.3.9 // indirect mellium.im/sasl v0.2.1 // indirect modernc.org/ccgo/v3 v3.16.8 // indirect xorm.io/builder v0.3.12 // indirect diff --git a/go.sum b/go.sum index e1854d4..0037c0c 100644 --- a/go.sum +++ b/go.sum @@ -543,8 +543,8 @@ github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a/go.mod h1:ul22v+Nro/ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0= -go.dtapp.net/dorm v1.0.26 h1:UkNuEVwlwB/chWr4LV1qKdt2tpcoDvPmR3KbGGeMWts= -go.dtapp.net/dorm v1.0.26/go.mod h1:bHG7BmgeLaAlc56myYF63lwZAIuMeWRAqHBb/L84dLM= +go.dtapp.net/dorm v1.0.27 h1:TnRWVfYYjfvZ1Zi2cyb41ZmsbytB4+5fN/FVnodd2NQ= +go.dtapp.net/dorm v1.0.27/go.mod h1:bHG7BmgeLaAlc56myYF63lwZAIuMeWRAqHBb/L84dLM= go.dtapp.net/goarray v1.0.1 h1:cHNHaJ2MFcuJPA1WKU2PM1EUZShS1vQqEH7n6YXsQVU= go.dtapp.net/goarray v1.0.1/go.mod h1:/MPhlFCAhQyeNV1M0v1PAOOX33Sg705fVjUgMO12IBQ= go.dtapp.net/goip v1.0.25 h1:GSgQkR7dc28TX8E1mF3wAy+EEGZ++tgqc8Q85OKZPEY= @@ -815,17 +815,18 @@ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/datatypes v1.0.7 h1:8NhJN4+annFjwV1WufDhFiPjdUvV1lSGUdg1UCjQIWY= gorm.io/datatypes v1.0.7/go.mod h1:l9qkCuy0CdzDEop9HKUdcnC9gHC2sRlaFtHkTzsZRqg= gorm.io/driver/mysql v1.3.2/go.mod h1:ChK6AHbHgDCFZyJp0F+BmVGb06PSIoh9uVYKAlRbb2U= -gorm.io/driver/mysql v1.3.5 h1:iWBTVW/8Ij5AG4e0G/zqzaJblYkBI1VIL1LG2HUGsvY= -gorm.io/driver/mysql v1.3.5/go.mod h1:sSIebwZAVPiT+27jK9HIwvsqOGKx3YMPmrA3mBJR10c= +gorm.io/driver/mysql v1.3.6 h1:BhX1Y/RyALb+T9bZ3t07wLnPZBukt+IRkMn8UZSNbGM= +gorm.io/driver/mysql v1.3.6/go.mod h1:sSIebwZAVPiT+27jK9HIwvsqOGKx3YMPmrA3mBJR10c= gorm.io/driver/postgres v1.3.4/go.mod h1:y0vEuInFKJtijuSGu9e5bs5hzzSzPK+LancpKpvbRBw= -gorm.io/driver/postgres v1.3.8 h1:8bEphSAB69t3odsCR4NDzt581iZEWQuRM27Cg6KgfPY= -gorm.io/driver/postgres v1.3.8/go.mod h1:qB98Aj6AhRO/oyu/jmZsi/YM9g6UzVCjMxO/6frFvcA= +gorm.io/driver/postgres v1.3.9 h1:lWGiVt5CijhQAg0PWB7Od1RNcBw/jS4d2cAScBcSDXg= +gorm.io/driver/postgres v1.3.9/go.mod h1:qw/FeqjxmYqW5dBcYNBsnhQULIApQdk7YuuDPktVi1U= gorm.io/driver/sqlite v1.3.1/go.mod h1:wJx0hJspfycZ6myN38x1O/AqLtNS6c5o9TndewFbELg= gorm.io/driver/sqlite v1.3.6 h1:Fi8xNYCUplOqWiPa3/GuCeowRNBRGTf62DEmhMDHeQQ= gorm.io/driver/sqlserver v1.3.1/go.mod h1:w25Vrx2BG+CJNUu/xKbFhaKlGxT/nzRkhWCCoptX8tQ= gorm.io/driver/sqlserver v1.3.2 h1:yYt8f/xdAKLY7lCCyXxIUEgZ/WsURos3dHrx8MKFGAk= gorm.io/gorm v1.23.1/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.23.6/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= +gorm.io/gorm v1.23.7/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.23.8 h1:h8sGJ+biDgBA1AD1Ha9gFCx7h8npU7AsLdlkX0n2TpE= gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/jobs_gorm_redis_get.go b/jobs_gorm_redis_get.go index 1c116f1..1d4d0ee 100644 --- a/jobs_gorm_redis_get.go +++ b/jobs_gorm_redis_get.go @@ -4,7 +4,6 @@ import ( "context" "errors" "fmt" - "go.dtapp.net/dorm" "go.dtapp.net/gojobs/jobs_gorm_model" "go.dtapp.net/gostring" "math/rand" @@ -17,7 +16,7 @@ import ( // --- // address 下发地址 // err 错误信息 -func (j *JobsGorm) GetIssueAddress(workers []string, v *jobs_gorm_model.Task) (address string, err error) { +func (j *JobsGorm) GetIssueAddress(workers []string, v *jobs_gorm_model.Task) (string, error) { var ( currentIp = "" // 当前Ip appointIpStatus = false // 指定Ip状态 @@ -34,29 +33,28 @@ func (j *JobsGorm) GetIssueAddress(workers []string, v *jobs_gorm_model.Task) (a if appointIpStatus == true { // 判断是否指定某ip执行 if gostring.Contains(workers[0], currentIp) == true { - return j.config.cornKeyPrefix + "_" + v.SpecifyIp, nil + return workers[0], nil } - return address, errors.New(fmt.Sprintf("需要执行的[%s]客户端不在线", currentIp)) + return "", errors.New(fmt.Sprintf("需要执行的[%s]客户端不在线", currentIp)) } - return j.config.cornKeyPrefix + "_" + workers[0], nil + return workers[0], nil } // 优先处理指定某ip执行 if appointIpStatus == true { for wk, wv := range workers { if gostring.Contains(wv, currentIp) == true { - return j.config.cornKeyPrefix + "_" + workers[wk], nil + return workers[wk], nil } } - return address, errors.New(fmt.Sprintf("需要执行的[%s]客户端不在线", currentIp)) + return "", errors.New(fmt.Sprintf("需要执行的[%s]客户端不在线", currentIp)) } else { // 随机返回一个 - zxIp := workers[j.random(0, len(workers))] - if zxIp == "" { + address := workers[j.random(0, len(workers))] + if address == "" { return address, errors.New("获取执行的客户端异常") } - address = j.config.cornKeyPrefix + "_" + zxIp - return address, err + return address, nil } } @@ -68,18 +66,7 @@ func (j *JobsGorm) GetSubscribeClientList(ctx context.Context) ([]string, error) } // 扫描 - values, err := j.redisClient.Keys(ctx, j.config.cornKeyPrefix+"_*").Result() - if err != nil { - if errors.Is(err, dorm.RedisKeysNotFound) { - return []string{}, nil - } - return nil, errors.New(fmt.Sprintf("获取失败:%s", err.Error())) - } - - client := make([]string, 0, len(values)) - for _, val := range values { - client = append(client, val.(string)) - } + client := j.redisClient.Keys(ctx, j.config.cornKeyPrefix+"_*") return client, nil }