Задать вопрос
@AnderZero

Вызов async функции через threading.Timer()?

Помогите с питоном)

Как вызвать async функцию через Timer?

from threading import Timer
async def send():
      #тут код
t = Timer(5.0,send)
t.start()

Выдает ошибку: coroutine will never be awaited
  • Вопрос задан
  • 2792 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • SF Education
    Бэкенд-разработчик на Python
    3 месяца
    Далее
Решения вопроса 1
sanya84
@sanya84
Фанатик Python 3
На сколько мне известно Timer позволяет запустить функцию через некоторое время
Это вы можете сделать так
# Python 3.7+
import asyncio

async def hello_world():
    await asyncio.sleep(3)
    print('Hello World!')

asyncio.run(hello_world())


Либо так

from threading import Timer

def hello_world():
    print('Hello World!')

timer = Timer(3, hello_world)
timer.start()
timer.join()


Вот так тогда
# Python 3.7+
import asyncio
from threading import Timer

async def hello_world():
    await asyncio.sleep(3)
    print('Hello World!')

def wait():
    asyncio.run(hello_world())

timer = Timer(3, wait)
timer.start()
timer.join()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы