Merge pull request #117 from SourceZh/separate
add more comments for independent starting of master and workers
This commit is contained in:
commit
209f3c1d1c
|
@ -104,6 +104,9 @@ class NodeMgr(object):
|
|||
for node in runlist:
|
||||
nodeip = node['key'].rsplit('/',1)[1]
|
||||
if node['value']=='waiting':
|
||||
# waiting state can be deleted, there is no use to let master check
|
||||
# this state because worker will change it and master will not change it now.
|
||||
# it is only preserved for compatible.
|
||||
logger.info ("%s want to joins, call it to init first" % nodeip)
|
||||
elif node['value']=='work':
|
||||
logger.info ("new node %s joins" % nodeip)
|
||||
|
@ -119,6 +122,7 @@ class NodeMgr(object):
|
|||
self.etcd.setkey("machines/runnodes/"+nodeip, "ok")
|
||||
if nodeip not in self.runnodes:
|
||||
self.runnodes.append(nodeip)
|
||||
# node not in all node list is a new node.
|
||||
if nodeip not in self.allnodes:
|
||||
self.allnodes.append(nodeip)
|
||||
self.etcd.setkey("machines/allnodes/"+nodeip, "ok")
|
||||
|
|
|
@ -54,7 +54,9 @@ class Worker(object):
|
|||
self.master = self.etcd.getkey("service/master")[1]
|
||||
self.mode=None
|
||||
|
||||
# waiting state is preserved for compatible.
|
||||
self.etcd.setkey("machines/runnodes/"+self.addr, "waiting")
|
||||
# get this node's key to judge how to init.
|
||||
[status, key] = self.etcd.getkey("machines/runnodes/"+self.addr)
|
||||
if status:
|
||||
self.key = generatekey("machines/allnodes/"+self.addr)
|
||||
|
@ -72,6 +74,8 @@ class Worker(object):
|
|||
logger.info ("worker registered and checked the token")
|
||||
|
||||
# worker search all run nodes to judge how to init
|
||||
# If the node in all node list, we will recover it.
|
||||
# Otherwise, this node is new added in.
|
||||
value = 'init-new'
|
||||
[status, alllist] = self.etcd.listdir("machines/allnodes")
|
||||
for node in alllist:
|
||||
|
@ -153,6 +157,7 @@ class Worker(object):
|
|||
|
||||
# start service of worker
|
||||
def start(self):
|
||||
# worker change it state itself. Independedntly from master.
|
||||
self.etcd.setkey("machines/runnodes/"+self.addr, "work")
|
||||
self.thread_sendheartbeat = threading.Thread(target=self.sendheartbeat)
|
||||
self.thread_sendheartbeat.start()
|
||||
|
|
Loading…
Reference in New Issue