diff --git a/docker.go b/docker.go index ac1031d74..738c6d3f5 100644 --- a/docker.go +++ b/docker.go @@ -48,17 +48,17 @@ func (provider *DockerProvider) Provide(configurationChan chan <- *Configuration dockerEvents := make(chan *docker.APIEvents) if (provider.Watch) { provider.dockerClient.AddEventListener(dockerEvents) - } - go func() { - for { - event := <-dockerEvents - log.Println("Docker event receveived", event) - configuration := provider.loadDockerConfig() - if (configuration != nil) { - configurationChan <- configuration + go func() { + for { + event := <-dockerEvents + log.Println("Docker event receveived", event) + configuration := provider.loadDockerConfig() + if (configuration != nil) { + configurationChan <- configuration + } } - } - }() + }() + } configuration := provider.loadDockerConfig() configurationChan <- configuration diff --git a/marathon.go b/marathon.go index f3acef526..d39fddc00 100644 --- a/marathon.go +++ b/marathon.go @@ -46,20 +46,22 @@ func (provider *MarathonProvider) Provide(configurationChan chan <- *Configurati return } else { provider.marathonClient = client - update := make(marathon.EventsChannel,5) - if err := client.AddEventsListener(update, marathon.EVENTS_APPLICATIONS); err != nil { - log.Println("Failed to register for subscriptions, %s", err) - } else { - go func() { - for { - event := <-update - log.Println("Marathon event receveived", event) - configuration := provider.loadMarathonConfig() - if (configuration != nil) { - configurationChan <- configuration + update := make(marathon.EventsChannel, 5) + if (provider.Watch) { + if err := client.AddEventsListener(update, marathon.EVENTS_APPLICATIONS); err != nil { + log.Println("Failed to register for subscriptions, %s", err) + } else { + go func() { + for { + event := <-update + log.Println("Marathon event receveived", event) + configuration := provider.loadMarathonConfig() + if (configuration != nil) { + configurationChan <- configuration + } } - } - }() + }() + } } configuration := provider.loadMarathonConfig()