github.com/TIBCOSoftware/flogo-lib@v0.5.9/engine/config.go (about) 1 package engine 2 3 import ( 4 "os" 5 "strconv" 6 7 "github.com/TIBCOSoftware/flogo-lib/engine/runner" 8 ) 9 10 const ( 11 ENV_RUNNER_TYPE_KEY = "FLOGO_RUNNER_TYPE" 12 RUNNER_TYPE_DEFAULT = "POOLED" 13 ENV_RUNNER_WORKERS_KEY = "FLOGO_RUNNER_WORKERS" 14 RUNNER_WORKERS_DEFAULT = 5 15 ENV_RUNNER_QUEUE_SIZE_KEY = "FLOGO_RUNNER_QUEUE" 16 RUNNER_QUEUE_SIZE_DEFAULT = 50 17 ) 18 19 //GetRunnerType returns the runner type 20 func GetRunnerType() string { 21 runnerTypeEnv := os.Getenv(ENV_RUNNER_TYPE_KEY) 22 if len(runnerTypeEnv) > 0 { 23 return runnerTypeEnv 24 } 25 return RUNNER_TYPE_DEFAULT 26 } 27 28 //GetRunnerWorkers returns the number of workers to use 29 func GetRunnerWorkers() int { 30 numWorkers := RUNNER_WORKERS_DEFAULT 31 workersEnv := os.Getenv(ENV_RUNNER_WORKERS_KEY) 32 if len(workersEnv) > 0 { 33 i, err := strconv.Atoi(workersEnv) 34 if err == nil { 35 numWorkers = i 36 } 37 } 38 return numWorkers 39 } 40 41 //GetRunnerQueueSize returns the runner queue size 42 func GetRunnerQueueSize() int { 43 queueSize := RUNNER_QUEUE_SIZE_DEFAULT 44 queueSizeEnv := os.Getenv(ENV_RUNNER_QUEUE_SIZE_KEY) 45 if len(queueSizeEnv) > 0 { 46 i, err := strconv.Atoi(queueSizeEnv) 47 if err == nil { 48 queueSize = i 49 } 50 } 51 return queueSize 52 } 53 54 //NewPooledRunnerConfig creates a new Pooled config, looks for environment variables to override default values 55 func NewPooledRunnerConfig() *runner.PooledConfig { 56 return &runner.PooledConfig{NumWorkers: GetRunnerWorkers(), WorkQueueSize: GetRunnerQueueSize()} 57 }