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.

Source Distribution

wasp-eureka-1.1.1.tar.gz (7.1 kB view hashes)

Uploaded source

Built Distribution

wasp_eureka-1.1.1-py3-none-any.whl (11.0 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page