Sync pairs asynchronously

This commit is contained in:
Hugo Osvaldo Barrera 2021-07-06 22:03:29 +02:00
parent 58aa0a3a31
commit 177748d3d1

View file

@ -129,6 +129,7 @@ def sync(ctx, collections, force_delete):
async def main(collections): async def main(collections):
conn = aiohttp.TCPConnector(limit_per_host=16) conn = aiohttp.TCPConnector(limit_per_host=16)
tasks = []
for pair_name, collections in collections: for pair_name, collections in collections:
async for collection, config in prepare_pair( async for collection, config in prepare_pair(
pair_name=pair_name, pair_name=pair_name,
@ -136,13 +137,16 @@ def sync(ctx, collections, force_delete):
config=ctx.config, config=ctx.config,
connector=conn, connector=conn,
): ):
await sync_collection( tasks.append(
sync_collection(
collection=collection, collection=collection,
general=config, general=config,
force_delete=force_delete, force_delete=force_delete,
connector=conn, connector=conn,
) )
)
await asyncio.gather(*tasks)
await conn.close() await conn.close()
asyncio.run(main(collections)) asyncio.run(main(collections))