12 optparse.make_option("-q", "--quiet", action="store_true", dest="quiet",
13 help="quiet mode", default=False)]
15 class Handler(SocketServer.BaseRequestHandler):
19 data = self.request[0]
20 socket = self.request[1]
21 #print "%s wrote:" % self.client_address[0]
24 for key, value in com.commands.iteritems():
27 args = data.partition(key)[2].split()
29 value[0](socket, self.client_address, self.worker, args)
31 value[0](socket, self.client_address, self.worker)
33 print "unkown command: " + data
35 model_name, _, cell_data = data.partition(" ")
36 cell = pickle.loads(cell_data)
37 #self.cells[cell[0]] = cell[1]
38 model = com.getModel(model_name)
40 model.cells[cell[0]] = cell[1]
41 #print hashlib.sha256(str(self.cells)).hexdigest()
44 class Server(SocketServer.UDPServer):
45 def __init__(self, host, port, handler, options, worker):
46 SocketServer.UDPServer.__init__(self, (host, port), handler)
49 self.handler = handler
50 self.options = options
51 self.handler.worker = worker
52 self.handler.cells = {}
56 def spawnWorker(server, n):
60 print "starting worker %i" % (port + i)
61 #worker.spawn(server[0], port + i)
62 subprocess.Popen("python worker.py %i" % (port + i), shell=True)
63 worker_list.append((server[0], port + i))
66 if __name__ == "__main__":
67 parser = optparse.OptionParser(usage="usage: %prog [options] port worker",
68 option_list=option_list)
69 options, args = parser.parse_args()
74 worker_count = int(args[1])
75 worker = spawnWorker((host, port), worker_count)
76 server = Server(host, port, Handler, options, worker)