Сбор результатов заданий собрал сопрограммы собрал в asyncio.gather () - PullRequest
0 голосов
/ 05 января 2019

Я хочу навсегда выполнить две задачи, которые параллельно выполняются asyncio.gather (). Первая задача содержит некоторую логику, которую я хочу подождать в цикле True: True. Вторая задача - asyncio.sleep (), которая отвечает за выполнение моих задач в одинаковые временные метки. Я хочу получить результат первой задачи в asyncio.gather () сразу после ее завершения.

async def main():
async with aiohttp.ClientSession() as session:
    while True:
        awaitingTime = calcAwaitingTime()
        data, _ = await asyncio.gather(BinanceClient.getLastSample(session), asyncio.sleep(awaitingTime))

if __name__ == '__main__':
loop = asyncio.get_event_loop()
task = loop.create_task(main())
loop.run_forever()

Я хочу получить результат BinanceClient.getLastSample () сразу после его завершения, чтобы не ждать после завершения asyncio.sleep (). Может быть, вы предлагаете другой способ выполнения этих двух задач навсегда, чтобы иметь лучшую возможность получить их результаты?

...