ansible / receptor

Project Receptor is a flexible multi-service relayer with remote execution and orchestration capabilities linking controllers with executors across a mesh of nodes.
Other
162 stars 81 forks source link

[receptorctl] An asyncio compatible version of `get_work_results` #790

Open AlanCoding opened 1 year ago

AlanCoding commented 1 year ago

Current implementation looks like this:

https://github.com/ansible/receptor/blob/57dd248c8e13fdde5dd3f1b547bf86071afc0c5e/receptorctl/receptorctl/socket_interface.py#L100-L101

And AWX asks for the socket and sockfile.

We would like to open the door to an eventual asyncio implementation to efficiently process streams from multiple work units at the same time. To do this, we need an async version of all the methods involved, ultimately get_work_results.

Since this uses UNIX sockets, that alternative would likely be this:

https://docs.python.org/3/library/asyncio-stream.html#asyncio.open_unix_connection

And look similar, but different

asyncio.open_unix_connection(path=path)

that's all I know so-far.

AlanCoding commented 1 year ago

For demonstration and eventual performance testing, I've put up https://github.com/AlanCoding/receptor-reporter