sawine@2: #!/usr/bin/python sawine@2: sawine@2: import com sawine@2: import model sawine@2: import optparse sawine@2: import pickle sawine@2: import SocketServer sawine@2: sawine@2: option_list = [ sawine@2: optparse.make_option("-q", "--quiet", action="store_true", dest="quiet", sawine@2: help="quiet mode", default=False)] sawine@2: sawine@2: def spawn(host, port): sawine@2: return Worker(host, port, Handler, ()) sawine@2: sawine@2: class Handler(SocketServer.BaseRequestHandler): sawine@2: """ sawine@2: """ sawine@2: def handle(self): sawine@2: data = self.request[0].strip() sawine@2: socket = self.request[1] sawine@2: model_size = int(data[:10]) sawine@2: model = pickle.loads(data[10:10+model_size]) sawine@2: max_iter = int(data[10+model_size:20+model_size]) sawine@2: model.update(max_iter) sawine@2: sawine@2: class Worker(SocketServer.UDPServer): sawine@2: def __init__(self, host, port, handler, options): sawine@2: SocketServer.UDPServer.__init__(self, (host, port), handler) sawine@2: self.host = host sawine@2: self.port = port sawine@2: self.handler = handler sawine@2: self.options = options sawine@2: def run(self): sawine@2: print "worker running at port %s" % self.port sawine@2: self.serve_forever() sawine@2: sawine@2: if __name__ == "__main__": sawine@2: parser = optparse.OptionParser(usage="usage: %prog [options] port", sawine@2: option_list=option_list) sawine@2: options, args = parser.parse_args() sawine@2: sawine@2: if len(args) > 0: sawine@2: port = int(args[0]) sawine@2: worker = Worker("localhost", port, Handler, options) sawine@2: worker.run()