#!/usr/bin/env python import argparse from greenrpc import DEFAULT_PORT from greenrpc.server import TCPServer, WSGIServer if __name__ == "__main__": parser = argparse.ArgumentParser(description="Start a new GreenRPC TCP Server") parser.add_argument("modules", metavar="", type=str, nargs="+", help="Python module to expose for the RPC Server") default_bind = "127.0.0.1:%s" % (DEFAULT_PORT, ) parser.add_argument("--bind", dest="bind", type=str, default=default_bind, help="
: to bind the server to (default: %s)" % (default_bind, )) parser.add_argument("--spawn", dest="spawn", type=int, default=4, help="number of greenlets to spawn (default: 4)") parser.add_argument("--http", dest="http", action="store_true", default=False, help="whether to start an http server instead of tcp (default: False)") args = parser.parse_args() address, _, port = args.bind.partition(":") bind = (address, int(port)) if args.http: server = WSGIServer(args.modules, bind=bind, spawn=args.spawn) else: server = TCPServer(args.modules, bind=bind, spawn=args.spawn) try: server.serve_forever() except KeyboardInterrupt: print "Stopping GreenRPC Server" server.stop()