コード例 #1
0
	localConfig = configJson[serverI]
	serverIdList = map(lambda x: x['id'], configJson)

val = serverI
connectGraph = ConnectGraph(configJson)
transactionManager = TransactionManager(localConfig['id'])
paxosManager = PaxosManager(configJson, serverI, transactionManager, connectGraph)

serverSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
serverSocket.bind((localConfig['local_ip_addr'], int(localConfig['port'])))
print "Server {0} listening on port {1}".format(str(localConfig['id']), str(localConfig['port']))

if len(sys.argv) == 4:
	# load paxosManager from last saved
	paxosManager.initializeFromJSON(json.load(open(sys.argv[3])))
	if len(transactionManager.getQueue()) > 0: # if there was a transaction before the crash, start the save attempt thread
		paxosManager.attempt_save_timeout_refresh()

def listenRequests():
	while True:
		data, addr = serverSocket.recvfrom(1024)
		msg = json.loads(data)
		threading.Thread(target=paxosManager.process_recv_msg, args=(msg,)).start()

t = threading.Thread(target=listenRequests)
t.daemon = True
t.start()

while True:
	cmd = raw_input("")
	if 'moneyTransfer' in cmd: