@@ -3,6 +3,7 @@ package task
3
3
import (
4
4
"encoding/json"
5
5
"fmt"
6
+ "os"
6
7
"runtime/debug"
7
8
"strconv"
8
9
"sync"
@@ -99,21 +100,35 @@ func (service *TaskService) SetOnEndHandler(handler TaskHandle) {
99
100
}
100
101
101
102
// LoadConfig 如果指定配置文件,初始化配置
103
+ // Deprecated: Use the LoadFileConfig instead
102
104
func (service * TaskService ) LoadConfig (configFile string , confType ... interface {}) * TaskService {
105
+ return service .LoadFileConfig (configFile , confType ... )
106
+ }
107
+
108
+ // LoadFileConfig 如果指定配置文件,初始化配置
109
+ func (service * TaskService ) LoadFileConfig (configFile string , confType ... interface {}) * TaskService {
103
110
cType := ConfigType_Xml
104
111
if len (confType ) > 0 && confType [0 ] == ConfigType_Json {
105
112
cType = ConfigType_Json
106
113
}
107
114
if len (confType ) > 0 && confType [0 ] == ConfigType_Yaml {
108
115
cType = ConfigType_Yaml
109
116
}
117
+ var config * AppConfig
110
118
if cType == ConfigType_Json {
111
- service . Config = InitJsonConfig (configFile )
119
+ config = JsonConfigHandler (configFile )
112
120
} else if cType == ConfigType_Yaml {
113
- service . Config = InitYamlConfig (configFile )
121
+ config = YamlConfigHandler (configFile )
114
122
} else {
115
- service . Config = InitConfig (configFile )
123
+ config = XmlConfigHandler (configFile )
116
124
}
125
+ service .applyConfig (config )
126
+ return service
127
+ }
128
+
129
+ // applyConfig apply task config with AppConfig
130
+ func (service * TaskService ) applyConfig (config * AppConfig ) * TaskService {
131
+ service .Config = config
117
132
if service .logger == nil {
118
133
if service .Config .Global .LogPath != "" {
119
134
service .SetLogger (NewFileLogger (service .Config .Global .LogPath ))
@@ -155,6 +170,18 @@ func (service *TaskService) LoadConfig(configFile string, confType ...interface{
155
170
return service
156
171
}
157
172
173
+ // LoadConfigHandler load config handler and init task config
174
+ func (service * TaskService ) LoadConfigHandler (configHandler ConfigHandle , configSource string ) * TaskService {
175
+ config , err := configHandler (configSource )
176
+ if err != nil {
177
+ panic ("Task:LoadConfigHandler 配置源[" + configSource + "]解析失败: " + err .Error ())
178
+ os .Exit (1 )
179
+ } else {
180
+ service .applyConfig (config )
181
+ }
182
+ return service
183
+ }
184
+
158
185
// RegisterHandler register handler by name
159
186
func (service * TaskService ) RegisterHandler (name string , handler TaskHandle ) * TaskService {
160
187
service .handlerMutex .Lock ()
0 commit comments