ask / mode

Python AsyncIO Services
Other
240 stars 55 forks source link

Pass loop attribute to asyncio.ensure_future #66

Open max-k opened 4 years ago

max-k commented 4 years ago

If we specify a custom event loop at worker instantiation, it has to also be used by asyncio instead of default one.

Description

In some situation (for example in integration tests of Faust agents), I have to retry worker startup because kafka is not yet available.

But the first time I run execute_from_commandline, the default event loop is closed so I have to create a new one before calling execute_from_commandline again.

Unfortunately, custom event loop is not properly transmitted to asyncio, so it automatically makes use of default event loop and raise a RuntimeError('Event loop is closed').

With this simple fix, user-specified event loop will be properly transmitted to asyncio.

pawelswiecki commented 2 years ago

Any updates on this MR?

I'm most likely facing the exact same problem. Any ideas for a temporary workaround?