tractor/examples/service_discovery.py

26 lines
630 B
Python
Raw Normal View History

2021-02-24 18:39:14 +00:00
import trio
import tractor
tractor.log.get_console_log("INFO")
2021-02-24 18:39:14 +00:00
async def main(service_name: str) -> None:
an: tractor.ActorNursery
async with tractor.open_nursery() as an:
await an.start_actor(service_name)
portal: tractor.Portal
async with tractor.get_registry() as portal:
print(f"Registrar is listening on {portal.channel}")
sockaddr: tractor.Portal
async with tractor.wait_for_actor(service_name) as sockaddr:
print(f"my_service is found at {sockaddr}")
await an.cancel()
if __name__ == '__main__':
2021-02-24 18:39:14 +00:00
trio.run(main, 'some_actor_name')