-
-
Notifications
You must be signed in to change notification settings - Fork 155
/
ego_option.go
53 lines (44 loc) · 1.06 KB
/
ego_option.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
49
50
51
52
53
package ego
import (
"os"
"time"
)
type Option func(a *ego)
// 是否允许系统悬挂起来,0 表示不悬挂, 1 表示悬挂。目的是一些脚本操作的时候,不想主线程停止
func WithHang(flag bool) Option {
return func(a *ego) {
a.hang = flag
}
}
func WithDisableBanner(disableBanner bool) Option {
return func(a *ego) {
a.disableBanner = disableBanner
}
}
func WithConfigPrefix(configPrefix string) Option {
return func(a *ego) {
a.configPrefix = configPrefix
}
}
// 设置运行前清理
func WithBeforeStopClean(fns ...func() error) Option {
return func(a *ego) {
a.beforeStopClean = append(a.beforeStopClean, fns...)
}
}
// 设置运行后清理
func WithAfterStopClean(fns ...func() error) Option {
return func(a *ego) {
a.afterStopClean = append(a.afterStopClean, fns...)
}
}
func WithStopTimeout(timeout time.Duration) Option {
return func(e *ego) {
e.stopTimeout = timeout
}
}
func WithShutdownSignal(signals ...os.Signal) Option {
return func(e *ego) {
e.shutdownSignals = append(e.shutdownSignals, signals...)
}
}