Skip to main content

Async Eureka client

Project description

https://img.shields.io/travis/wickedasp/eureka/master.svg?style=flat-square https://img.shields.io/pypi/l/wasp-eureka.svg?style=flat-square https://img.shields.io/pypi/v/wasp-eureka.svg?style=flat-square https://img.shields.io/pypi/status/wasp-eureka.svg?style=flat-square https://img.shields.io/pypi/pyversions/wasp-eureka.svg?style=flat-square

WASP Eureka

Asynchronous Naive Eureka client for the Netflix OSS/Spring Cloud bundled eureka stack.

Installation

Note: this supports Python 3.5+

$ pip install wasp-eureka

If you want to just run it standalone, include those dependencies:

$ pip install wasp-eureka[standalone]

Usage

The surface area of this module is pretty small, effectively you just need to care about the wasp_eureka.EurekaClient class and its methods:

import asyncio

from wasp_eureka import EurekaClient

# no spaces or underscores, this needs to be url-friendly
app_name = 'test-app'

port = 8080
# 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 = 'https://service-discovery.mycompany.com/eureka'
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()

loop.run_until_complete(main(loop=loop))

Creating a Release

Bumpversion provides a simplified way to manage versioning, to check the dry run before running it:

$ bumpversion [patch,minor,major] --dry-run --verbose
$ bumpversion patch

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
wasp_eureka-1.1.1-py3-none-any.whl (11.0 kB) Copy SHA256 hash SHA256 Wheel py3
wasp-eureka-1.1.1.tar.gz (7.1 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page