mirror of
https://github.com/newnius/YAO-scheduler.git
synced 2025-06-08 14:51:55 +00:00
44 lines
965 B
Go
44 lines
965 B
Go
package main
|
|
|
|
import (
|
|
"sync"
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
type Configuration struct {
|
|
KafkaBrokers []string `json:"kafkaBrokers"`
|
|
KafkaTopic string `json:"kafkaTopic"`
|
|
SchedulerPolicy string `json:"schedulerPolicy"`
|
|
mock bool
|
|
mu sync.Mutex
|
|
}
|
|
|
|
var ConfigurationInstance *Configuration
|
|
var ConfigurationInstanceLock sync.Mutex
|
|
|
|
func InstanceOfConfiguration() *Configuration {
|
|
ConfigurationInstanceLock.Lock()
|
|
defer ConfigurationInstanceLock.Unlock()
|
|
|
|
if ConfigurationInstance == nil {
|
|
ConfigurationInstance = &Configuration{mock: false}
|
|
}
|
|
return ConfigurationInstance
|
|
}
|
|
|
|
func (config *Configuration) EnableMock() bool {
|
|
config.mu.Lock()
|
|
defer config.mu.Unlock()
|
|
config.mock = true
|
|
log.Info("configuration.mock = true")
|
|
return true
|
|
}
|
|
|
|
func (config *Configuration) DisableMock() bool {
|
|
config.mu.Lock()
|
|
defer config.mu.Unlock()
|
|
config.mock = false
|
|
log.Info("configuration.mock = false")
|
|
return true
|
|
}
|