def main(args=None, workers=None, client=EchoHubClient, worker_kwargs=None):
gevent.monkey.patch_all()
args = args if args else prepare_argparse().parse_args()
prepare_logging(args.verbose or 1)
if args.mode == 'server':
hub = HubServer(workers=workers)
elif args.mode == 'client':
hub = client(worker_kwargs=worker_kwargs)
else:
raise Exception("Unknown mode '%s'." % args.mode)
def sig_handler(sig=None, frame=None):
log.warning("Hub process received SIGTERM/SIGINT")
hub.stop()
log.info("Sig handler completed.")
gevent.signal(signal.SIGTERM, sig_handler)
gevent.signal(signal.SIGINT, sig_handler) # KeyboardInterrupt also
hub.start()
gevent.wait()
评论列表
文章目录