首页 > 解决方案 > 如何在 Python 中安排 asyncio 函数?

问题描述

我有以下代码:

async def main():

    symbols = ['BTCUSDT', 'ETHUSDT', 'BNBUSDT']
    tasks = []

    async with ClientSession() as session:
        for x in symbols:
            task = asyncio.create_task(nested('https://api.binance.com/api/v1/klines?&symbol={0}&interval={1}&limit=300'.format(symbol, tf), session, symbol))
            tasks.append(task)
            responses = await asyncio.gather(*tasks)
            tasks.clear()
            print(tasks)
            await asyncio.sleep(25)

try:
    assert isinstance(loop := asyncio.new_event_loop(), asyncio.ProactorEventLoop)

    async def proactor_wrap(loop_: asyncio.ProactorEventLoop, fut: asyncio.coroutines):
        await fut
        loop_.stop()

    loop.create_task(proactor_wrap(loop, main()))
    loop.run_forever()

except (AssertionError, AttributeError):
    asyncio.run(main())

我如何安排函数main()每隔 x 时间运行一次,例如每 10 分钟或每 2 小时运行一次?我可以使用该schedule模块来完成这项任务吗?

标签: pythonpython-3.xpython-asyncio

解决方案


推荐阅读