[Async-sig] [python-tulip] asyncio.Lock equivalent for multiple processes

Roberto Martínez robertomartinezp at gmail.com
Tue Apr 17 01:19:21 EDT 2018


I don't know if there is a third party solution for this.

I think the closest you can get today using the standard library is using a
multiprocessing.manager().Lock (which can be shared among processes) and
call the lock.acquire() function with asyncio.run_in_executor(), using a
ThreadedPoolExecutor to avoid blocking the asyncio event loop.

Best regards,

El mar., 17 abr. 2018 a las 0:05, Ludovic Gasc (<gmludo at gmail.com>)

> Hi,
> I'm looking for a equivalent of asyncio.Lock (
> https://docs.python.org/3/library/asyncio-sync.html#asyncio.Lock) but
> shared between several processes on the same server, because I'm migrating
> a daemon from mono-worker to multi-worker pattern.
> For now, the closest solution in term of API seems aioredlock:
> https://github.com/joanvila/aioredlock#aioredlock
> But I'm not a big fan to use polling nor with a timeout because the lock I
> need is very critical, I prefer to block the code than unlock with timeout.
> Do I miss a new awesome library or do you have an easier approach ?
> Thanks for your responses.
> --
> Ludovic Gasc (GMLudo)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/async-sig/attachments/20180417/4053e427/attachment.html>

More information about the Async-sig mailing list