python Gevent multiprocessing server,,import sysfr
文章由Byrx.net分享于2019-03-23 11:03:05
python Gevent multiprocessing server,,import sysfr
import sysfrom gevent import serverfrom gevent.baseserver import _tcp_listenerfrom gevent.monkey import patch_all; patch_all()from multiprocessing import Process, current_process, cpu_countdef note(format, *args): sys.stderr.write('[%s]\t%s\n' % (current_process().name, format%args))def echo(socket, address): print 'New connection from %s:%s' % address fileobj = socket.makefile() fileobj.write('Welcome to the echo server! Type quit to exit.\r\n') fileobj.write('In %s\r\n' % current_process().name) fileobj.flush() while True: line = fileobj.readline() if not line: print "client disconnected" break if line.strip().lower() == 'quit': print "client quit" break fileobj.write(current_process().name + '\t' + line) fileobj.flush() print "echoed", repr(line)listener = _tcp_listener(('127.0.0.1', 8001)) def serve_forever(listener): note('starting server') server.StreamServer(listener, echo).serve_forever()number_of_processes = 5print 'Starting %s processes' % number_of_processesfor i in range(number_of_processes): Process(target=serve_forever, args=(listener,)).start()serve_forever(listener)
评论关闭