-
Notifications
You must be signed in to change notification settings - Fork 0
/
task.helper.options.go
48 lines (40 loc) · 1.25 KB
/
task.helper.options.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package gojobs
type TaskHelperOption interface {
apply(cfg *taskHelperConfig)
}
type taskHelperOption func(cfg *taskHelperConfig)
func (fn taskHelperOption) apply(cfg *taskHelperConfig) {
fn(cfg)
}
type taskHelperConfig struct {
logIsDebug bool // [日志]日志是否启动
traceIsFilter bool // [过滤]链路追踪是否过滤
traceIsFilterKeyName string // [过滤]Key名称
traceIsFilterKeyValue string // [过滤]Key值
}
// defaultTaskHelperConfig 默认配置
func defaultTaskHelperConfig() *taskHelperConfig {
return &taskHelperConfig{}
}
// newTaskHelperConfig 初始配置
func newTaskHelperConfig(opts []TaskHelperOption) *taskHelperConfig {
cfg := defaultTaskHelperConfig()
for _, opt := range opts {
opt.apply(cfg)
}
return cfg
}
// TaskHelperWithDebug 设置日志是否打印
func TaskHelperWithDebug(is bool) TaskHelperOption {
return taskHelperOption(func(cfg *taskHelperConfig) {
cfg.logIsDebug = is
})
}
// TaskHelperWithFilter 设置链路追踪是否过滤
func TaskHelperWithFilter(is bool, keyName string, keyValue string) TaskHelperOption {
return taskHelperOption(func(cfg *taskHelperConfig) {
cfg.traceIsFilter = is
cfg.traceIsFilterKeyName = keyName
cfg.traceIsFilterKeyValue = keyValue
})
}