def main(): args = parse_args() if args.debug: logger.setLevel(logging.DEBUG) scheme = 'https' if args.secure else 'http' status_url = '{}://{}:{}{}'.format(scheme, args.ip, args.port, args.status_path) health_url = '{}://{}:{}{}'.format(scheme, args.ip, args.port, args.health_path) eureka = EurekaClient(args.name, args.port, args.ip, eureka_url=args.eureka, instance_id=args.instance_id, status_page_url=status_url, health_check_url=health_url) loop = asyncio.get_event_loop() loop.run_until_complete(eureka.register()) logger.info('Registered with eureka as %s', eureka.instance_id) scheduler = AsyncIOScheduler({'event_loop': loop}) @scheduler.scheduled_job(IntervalTrigger(seconds=args.interval)) async def renew_lease(): try: logger.debug('Attempting to renew the lease...') await eureka.renew() logger.info('Lease renewed') except EurekaException as e: if e.status == HTTPStatus.NOT_FOUND: logger.info('Lease expired, re-registering.') await eureka.register() return logger.error('Error performing renewal: %s', e) scheduler.start() try: logger.info('Running') with contextlib.suppress(KeyboardInterrupt): loop.run_forever() finally: scheduler.shutdown() loop.run_until_complete(eureka.deregister()) loop.close()
import asyncio from wasp_eureka import EurekaClient # no spaces or underscores, this needs to be url-friendly app_name = 'Glucose' port = 7000 # This needs to be an IP accessible by anyone that # may want to discover, connect and/or use your service. ip = '127.0.0.1' my_eureka_url = 'http://us1.fiwoo.eu:3331/' loop = asyncio.get_event_loop() eureka = EurekaClient(app_name, port, ip, eureka_url=my_eureka_url, loop=loop) async def main(): # Presuming you want your service to be available via eureka result = await eureka.register() assert result, 'Unable to register' # You need to provide a heartbeat to renew the lease, # otherwise the eureka server will expel the service. # The default is 90s, so any time <90s is ok while True: await asyncio.sleep(67) await eureka.renew() try:
from tornado.options import define, options define("port", default=7171, help="run on the given port", type=int) class IndexHandler(tornado.web.RequestHandler): def get(self): self.write('[GET] python tornado...') app_name = 'linjk-python-eureka-client' ip = '192.168.1.109' my_eureka_url = 'http://192.168.1.109:8761' loop = asyncio.get_event_loop() # 创建事件循环 eureka = EurekaClient(app_name=app_name, port=options.port, ip_addr=ip, hostname="localhost", eureka_url=my_eureka_url, loop=loop) async def main(): result = await eureka.register() print("[Register Rureka] result: %s" % result) tornado.options.parse_command_line() app = tornado.web.Application( handlers=[(r'/', IndexHandler)], debug=True ) http_server = tornado.httpserver.HTTPServer(app) http_server.listen(options.port) tornado.ioloop.IOLoop.instance().start() while True:
from athena.api.test_api import BaseTest from athena.utils.config import config from athena.utils.handler import prerequest port = int(sys.argv[1]) rest_apis_handler = [ (r"/athena/test", BaseTest), ] loop = asyncio.get_event_loop() # 创建事件循环 eureka = EurekaClient(app_name=config.APP_NAME, port=port, ip_addr=config.HOST_IP, hostname=config.HOST_IP, eureka_url=config.REGISTER_EUREKA_HOST, loop=loop) async def main(): result = await eureka.register() print("[Register Rureka] result: %s" % result) app = tornado.web.Application(handlers=rest_apis_handler) server = tornado.httpserver.HTTPServer(app, idle_connection_timeout=31536000000) server.listen(port) prerequest.smooth_reload(server) while True: await asyncio.sleep(60) await eureka.renew()
INSTANCE_ID = "{IP}:{PORT}".format(IP=SERVICE_IP, PORT=SERVICE_PORT) env_dict = os.environ SERVICE_NAME = SERVICE_NAME if 'SERVICE_NAME' not in env_dict.keys() else env_dict['SERVICE_NAME'] SERVICE_IP = SERVICE_IP if 'SERVICE_IP' not in env_dict.keys() else env_dict['SERVICE_IP'] SERVICE_PORT = SERVICE_PORT if 'SERVICE_PORT' not in env_dict.keys() else env_dict['SERVICE_PORT'] EUREKA_URL = EUREKA_URL if 'EUREKA_URL' not in env_dict.keys() else env_dict['EUREKA_URL'] HOSTNAME = HOSTNAME if 'HOSTNAME' not in env_dict.keys() else env_dict['HOSTNAME'] INSTANCE_ID = INSTANCE_ID if 'INSTANCE_ID' not in env_dict.keys() else env_dict['INSTANCE_ID'] loop = asyncio.get_event_loop() eureka = EurekaClient(app_name=SERVICE_NAME, ip_addr=SERVICE_IP, port=SERVICE_PORT, hostname=HOSTNAME, eureka_url=EUREKA_URL, loop=loop, instance_id=INSTANCE_ID) async def main(): await eureka.register() while True: await asyncio.sleep(40) await eureka.renew() if __name__ == "__main__": loop.run_until_complete(main())