Beispiel #1
0
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()
Beispiel #2
0
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:
Beispiel #3
0
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()
Beispiel #5
0
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())