/
config.go
57 lines (50 loc) · 1.4 KB
/
config.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
54
55
56
57
package engine
import (
"os"
"strconv"
"github.com/TIBCOSoftware/flogo-lib/engine/runner"
)
const (
ENV_RUNNER_TYPE_KEY = "FLOGO_RUNNER_TYPE"
RUNNER_TYPE_DEFAULT = "POOLED"
ENV_RUNNER_WORKERS_KEY = "FLOGO_RUNNER_WORKERS"
RUNNER_WORKERS_DEFAULT = 5
ENV_RUNNER_QUEUE_SIZE_KEY = "FLOGO_RUNNER_QUEUE"
RUNNER_QUEUE_SIZE_DEFAULT = 50
)
//GetRunnerType returns the runner type
func GetRunnerType() string {
runnerTypeEnv := os.Getenv(ENV_RUNNER_TYPE_KEY)
if len(runnerTypeEnv) > 0 {
return runnerTypeEnv
}
return RUNNER_TYPE_DEFAULT
}
//GetRunnerWorkers returns the number of workers to use
func GetRunnerWorkers() int {
numWorkers := RUNNER_WORKERS_DEFAULT
workersEnv := os.Getenv(ENV_RUNNER_WORKERS_KEY)
if len(workersEnv) > 0 {
i, err := strconv.Atoi(workersEnv)
if err == nil {
numWorkers = i
}
}
return numWorkers
}
//GetRunnerQueueSize returns the runner queue size
func GetRunnerQueueSize() int {
queueSize := RUNNER_QUEUE_SIZE_DEFAULT
queueSizeEnv := os.Getenv(ENV_RUNNER_QUEUE_SIZE_KEY)
if len(queueSizeEnv) > 0 {
i, err := strconv.Atoi(queueSizeEnv)
if err == nil {
queueSize = i
}
}
return queueSize
}
//NewPooledRunnerConfig creates a new Pooled config, looks for environment variables to override default values
func NewPooledRunnerConfig() *runner.PooledConfig {
return &runner.PooledConfig{NumWorkers: GetRunnerWorkers(), WorkQueueSize: GetRunnerQueueSize()}
}