- jobs:增加自定义目录配置

master
李光春 2 years ago
parent 100c843dd8
commit e0684cfad1

@ -1,6 +1,7 @@
## v2022-06-07
- jobs优化配置
- jobs增加自定义目录配置
## v2022-05-31

@ -7,11 +7,12 @@ import (
// EtcdConfig etcd配置
type EtcdConfig struct {
Endpoints []string // 接口 []string{"http://127.0.0.1:2379"}
DialTimeout time.Duration // time.Second * 5
LocalIP string // 本机IP
Username string // 用户名
Password string // 密码
Endpoints []string // 接口 []string{"http://127.0.0.1:2379"}
DialTimeout time.Duration // time.Second * 5
LocalIP string // 本机IP
Username string // 用户名
Password string // 密码
CustomDirectory string // 自定义目录,后面不需要/
}
// Etcd etcd
@ -35,12 +36,28 @@ const (
JobWorkerDir = "/cron/workers/"
)
func getJobSaveDir(e Etcd) string {
if e.CustomDirectory == "" {
return JobSaveDir
} else {
return JobSaveDir + e.CustomDirectory + "/"
}
}
func getJobWorkerDir(e Etcd) string {
if e.CustomDirectory == "" {
return JobWorkerDir
} else {
return JobWorkerDir + e.CustomDirectory + "/"
}
}
// GetWatchKey 监听的key
func (e Etcd) GetWatchKey() string {
return JobSaveDir + e.LocalIP
return getJobSaveDir(e) + e.LocalIP
}
// IssueWatchKey 下发的key
func (e Etcd) IssueWatchKey(ip string) string {
return JobSaveDir + ip
return getJobSaveDir(e) + ip
}

@ -26,6 +26,8 @@ func NewEtcdServer(config *EtcdConfig) (*Etcd, error) {
Endpoints: e.Endpoints,
DialTimeout: e.DialTimeout,
}
// 判断有没有配置用户信息
if e.Username != "" {
v3Config.Username = e.Username
v3Config.Password = e.Password
@ -57,20 +59,20 @@ func (e Etcd) ListWorkers() (workerArr []string, err error) {
workerArr = make([]string, 0)
// 获取目录下所有Kv
if getResp, err = e.Kv.Get(context.TODO(), JobWorkerDir, clientv3.WithPrefix()); err != nil {
if getResp, err = e.Kv.Get(context.TODO(), getJobWorkerDir(e), clientv3.WithPrefix()); err != nil {
return
}
// 解析每个节点的IP
for _, kv = range getResp.Kvs {
// kv.Key : /cron/workers/192.168.2.1
workerIP = ExtractWorkerIP(string(kv.Key))
workerIP = e.ExtractWorkerIP(string(kv.Key))
workerArr = append(workerArr, workerIP)
}
return
}
// ExtractWorkerIP 提取worker的IP
func ExtractWorkerIP(regKey string) string {
return strings.TrimPrefix(regKey, JobWorkerDir)
func (e Etcd) ExtractWorkerIP(regKey string) string {
return strings.TrimPrefix(regKey, getJobWorkerDir(e))
}

@ -31,6 +31,8 @@ func NewEtcdWorker(config *EtcdConfig) (*Etcd, error) {
Endpoints: e.Endpoints,
DialTimeout: e.DialTimeout,
}
// 判断有没有配置用户信息
if e.Username != "" {
v3Config.Username = e.Username
v3Config.Password = e.Password
@ -67,7 +69,7 @@ func (e Etcd) RegisterWorker() {
for {
// 注册路径
regKey = JobWorkerDir + e.LocalIP
regKey = getJobWorkerDir(e) + e.LocalIP
log.Println("租约:", regKey)
cancelFunc = nil

Loading…
Cancel
Save