Я пытаюсь запустить две сопрограммы вместе и использовать асинхронность, одна из них - клиент телеграммы телетона, а другая асинхронная задача, которая каждую минуту получает данные для бота телеграммы. Некоторый код:
from asyncio import Runner
from asyncio import sleep
import asyncio
async def task_coro1():
print('First coro')
await sleep(1)
while True:
#do something
pass
async def task_coro2():
print('Second coro')
await sleep(1)
while True:
#do something
pass
asyncio.run(task_coro1())
asyncio.run(task_coro2())
уже пробовал с asyncio.gather, с многопоточностью
#решено
через некоторое время я понимаю, что в телемарафоне уже есть цикл... просто добавил задачу для второй сопрограммы в его цикл событий






Ты был почти там
from asyncio import Runner
from asyncio import sleep
import asyncio
async def task_coro1():
print('First coro')
await sleep(3)
while True:
await sleep(2)
print('First coro keeps working!')
pass
async def task_coro2():
print('Second coro')
await sleep(2)
while True:
await sleep(2)
print('Second coro keeps working!')
pass
async def main():
await asyncio.gather(task_coro1(),task_coro2())
if __name__ == "__main__":
asyncio.run(main())
Собрав две сопрограммы, они будут работать вместе, используя один и тот же поток.
Обратите внимание: пока одна сопрограмма блокирует поток ЦП, другая не будет работать. Это не тред, как вы упомянули в исходном сообщении.