Задать вопрос
  • Не могу запустить функцию библиотека aiogram?

    akhmedov_911

    Аналогично (если вы делали через create_task или нечто подобное), как вы запустили отправку сообщений каждые 5 минут, можно запустить другую задачу, которая будет ждать (asyncio.sleep) до указанной даты, затем отправлять сообщение определённому пользователю:
    import asyncio
    from datetime import datetime
    import aiogram
    
    async def notify_at(bot: aiogram.Bot, user_id: int, msg: str, at: datetime):
        delta = at - datetime.now()
        to_wait = delta.total_seconds
        if to_wait > 0:
            await asyncio.sleep(to_wait)
        await bot.send_message(user_id, msg)
    
    asyncio.create_task(notify_at(bot, user_id, "Сегодня первое сентября", datetime(2023, 9, 1, 12, 00, 00)))


    Данная функция принимает бота, пользователя, кому отправить, сообщение и дату (ниже указано 1 сентября 2023 12:00:00), когда отправить сообщение
    Обратите внимание, данный код отправляет сообщение в любом случае, даже если дата давно прошла
    Также обратите внимание, что данный код полагается на локальное время машины, а не на UTC