service/vendor/github.com/xxl-job/xxl-job-executor-go/optinos.go

86 lines
1.7 KiB
Go

package xxl
import (
"github.com/go-basic/ipv4"
"time"
)
type Options struct {
ServerAddr string `json:"server_addr"` //调度中心地址
AccessToken string `json:"access_token"` //请求令牌
Timeout time.Duration `json:"timeout"` //接口超时时间
ExecutorIp string `json:"executor_ip"` //本地(执行器)IP(可自行获取)
ExecutorPort string `json:"executor_port"` //本地(执行器)端口
RegistryKey string `json:"registry_key"` //执行器名称
LogDir string `json:"log_dir"` //日志目录
l Logger //日志处理
}
func newOptions(opts ...Option) Options {
opt := Options{
ExecutorIp: ipv4.LocalIP(),
ExecutorPort: DefaultExecutorPort,
RegistryKey: DefaultRegistryKey,
}
for _, o := range opts {
o(&opt)
}
if opt.l == nil {
opt.l = &logger{}
}
return opt
}
type Option func(o *Options)
var (
DefaultExecutorPort = "9999"
DefaultRegistryKey = "golang-jobs"
)
// ServerAddr 设置调度中心地址
func ServerAddr(addr string) Option {
return func(o *Options) {
o.ServerAddr = addr
}
}
// AccessToken 请求令牌
func AccessToken(token string) Option {
return func(o *Options) {
o.AccessToken = token
}
}
// ExecutorIp 设置执行器IP
func ExecutorIp(ip string) Option {
return func(o *Options) {
o.ExecutorIp = ip
}
}
// ExecutorPort 设置执行器端口
func ExecutorPort(port string) Option {
return func(o *Options) {
o.ExecutorPort = port
}
}
// RegistryKey 设置执行器标识
func RegistryKey(registryKey string) Option {
return func(o *Options) {
o.RegistryKey = registryKey
}
}
// SetLogger 设置日志处理器
func SetLogger(l Logger) Option {
return func(o *Options) {
o.l = l
}
}