various fixes for broker and messaging in server (#1187)
* provide broker disconnect messages in server Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org> * broker/eats: another fix Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
parent
2764de9a1a
commit
79ad1e6fe3
@ -240,6 +240,10 @@ func (n *natsBroker) serve(exit chan bool) error {
|
|||||||
// register the cluster address
|
// register the cluster address
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
|
case err := <-n.closeCh:
|
||||||
|
if err != nil {
|
||||||
|
log.Log(err)
|
||||||
|
}
|
||||||
case <-exit:
|
case <-exit:
|
||||||
// deregister on exit
|
// deregister on exit
|
||||||
n.opts.Registry.Deregister(®istry.Service{
|
n.opts.Registry.Deregister(®istry.Service{
|
||||||
@ -282,7 +286,6 @@ func (n *natsBroker) Connect() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// set to connected
|
// set to connected
|
||||||
n.connected = true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
status := nats.CLOSED
|
status := nats.CLOSED
|
||||||
@ -313,6 +316,9 @@ func (n *natsBroker) Connect() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
n.conn = c
|
n.conn = c
|
||||||
|
|
||||||
|
n.connected = true
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -328,7 +334,6 @@ func (n *natsBroker) Disconnect() error {
|
|||||||
// drain the connection if specified
|
// drain the connection if specified
|
||||||
if n.drain {
|
if n.drain {
|
||||||
n.conn.Drain()
|
n.conn.Drain()
|
||||||
n.closeCh <- nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// close the client connection
|
// close the client connection
|
||||||
@ -336,11 +341,13 @@ func (n *natsBroker) Disconnect() error {
|
|||||||
|
|
||||||
// shutdown the local server
|
// shutdown the local server
|
||||||
// and deregister
|
// and deregister
|
||||||
|
if n.server != nil {
|
||||||
select {
|
select {
|
||||||
case <-n.exit:
|
case <-n.exit:
|
||||||
default:
|
default:
|
||||||
close(n.exit)
|
close(n.exit)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// set not connected
|
// set not connected
|
||||||
n.connected = false
|
n.connected = false
|
||||||
@ -439,7 +446,7 @@ func (n *natsBroker) onClose(conn *nats.Conn) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (n *natsBroker) onDisconnectedError(conn *nats.Conn, err error) {
|
func (n *natsBroker) onDisconnectedError(conn *nats.Conn, err error) {
|
||||||
n.closeCh <- nil
|
n.closeCh <- err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *natsBroker) onAsyncError(conn *nats.Conn, sub *nats.Subscription, err error) {
|
func (n *natsBroker) onAsyncError(conn *nats.Conn, sub *nats.Subscription, err error) {
|
||||||
@ -460,6 +467,7 @@ func NewBroker(opts ...Option) Broker {
|
|||||||
|
|
||||||
n := &natsBroker{
|
n := &natsBroker{
|
||||||
opts: options,
|
opts: options,
|
||||||
|
closeCh: make(chan error),
|
||||||
}
|
}
|
||||||
n.setOption(opts...)
|
n.setOption(opts...)
|
||||||
|
|
||||||
|
@ -457,7 +457,7 @@ func (n *natsBroker) onAsyncError(conn *nats.Conn, sub *nats.Subscription, err e
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (n *natsBroker) onDisconnectedError(conn *nats.Conn, err error) {
|
func (n *natsBroker) onDisconnectedError(conn *nats.Conn, err error) {
|
||||||
n.closeCh <- nil
|
n.closeCh <- err
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewBroker(opts ...broker.Option) broker.Broker {
|
func NewBroker(opts ...broker.Option) broker.Broker {
|
||||||
|
@ -805,10 +805,7 @@ func (g *grpcServer) Start() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
baddr := config.Broker.Address()
|
log.Logf("Broker [%s] Connected to %s", config.Broker.String(), config.Broker.Address())
|
||||||
bname := config.Broker.String()
|
|
||||||
|
|
||||||
log.Logf("Broker [%s] Connected to %s", bname, baddr)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// announce self to the world
|
// announce self to the world
|
||||||
@ -876,6 +873,7 @@ func (g *grpcServer) Start() error {
|
|||||||
// close transport
|
// close transport
|
||||||
ch <- nil
|
ch <- nil
|
||||||
|
|
||||||
|
log.Logf("Broker [%s] Disconnected from %s", config.Broker.String(), config.Broker.Address())
|
||||||
// disconnect broker
|
// disconnect broker
|
||||||
config.Broker.Disconnect()
|
config.Broker.Disconnect()
|
||||||
}()
|
}()
|
||||||
|
@ -879,6 +879,7 @@ func (s *rpcServer) Start() error {
|
|||||||
// close transport listener
|
// close transport listener
|
||||||
ch <- ts.Close()
|
ch <- ts.Close()
|
||||||
|
|
||||||
|
log.Logf("Broker [%s] Disconnected from %s", bname, config.Broker.Address())
|
||||||
// disconnect the broker
|
// disconnect the broker
|
||||||
config.Broker.Disconnect()
|
config.Broker.Disconnect()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user