Merge pull request #737 from milosgajdos83/buffered-advertchan

Lets make advert channel buffered so we don't lose adverts
This commit is contained in:
Asim Aslam 2019-09-05 19:19:03 +01:00 committed by GitHub
commit df5657dcd1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -10,6 +10,7 @@ import (
"github.com/google/uuid"
"github.com/micro/go-micro/registry"
"github.com/micro/go-micro/util/log"
)
const (
@ -289,6 +290,7 @@ func (r *router) publishAdvert(advType AdvertType, events []*Event) {
Events: events,
}
log.Debugf("Router publishing advert; %+v", a)
r.RLock()
for _, sub := range r.subscribers {
// check the exit chan first
@ -601,7 +603,7 @@ func (r *router) Advertise() (<-chan *Advert, error) {
switch r.status.Code {
case Advertising:
advertChan := make(chan *Advert)
advertChan := make(chan *Advert, 128)
r.subscribers[uuid.New().String()] = advertChan
return advertChan, nil
case Running:
@ -641,7 +643,7 @@ func (r *router) Advertise() (<-chan *Advert, error) {
r.status = Status{Code: Advertising, Error: nil}
// create advert channel
advertChan := make(chan *Advert)
advertChan := make(chan *Advert, 128)
r.subscribers[uuid.New().String()] = advertChan
return advertChan, nil