Fix how cluster framework tracks worker count

This commit is contained in:
Jon Siwek 2018-05-24 14:32:45 -05:00
parent 186d47c762
commit 95ea84e60e

View file

@ -238,6 +238,8 @@ export {
global node_topic: function(name: string): string;
}
global active_worker_ids: set[string] = set();
type NamedNode: record {
name: string;
node: Node;
@ -305,7 +307,10 @@ event Cluster::hello(name: string, id: string) &priority=10
Cluster::log(fmt("got hello from %s (%s)", name, id));
if ( n$node_type == WORKER )
++worker_count;
{
add active_worker_ids[id];
worker_count = |active_worker_ids|;
}
}
event Broker::peer_added(endpoint: Broker::EndpointInfo, msg: string) &priority=10
@ -329,7 +334,10 @@ event Broker::peer_lost(endpoint: Broker::EndpointInfo, msg: string) &priority=1
delete n$id;
if ( n$node_type == WORKER )
--worker_count;
{
delete active_worker_ids[endpoint$id];
worker_count = |active_worker_ids|;
}
event Cluster::node_down(node_name, endpoint$id);
break;