@Anatoliy3247932847

Как отсылать сообщения через некоторое время в aiogram?

У меня есть код который проверяет подписку на телеграм канал. Если человек подписан, ему отправляется два сообщения, 1-"награда" за подписку; 2-начало следующего блока. Но дело в том что я хочу начать следующий блок через несколько дней. Типо пользователь получил что хотел, а через несколько дней ему приходит еще одно предложение.

if shek_sub_channel(await bot.get_chat_member(chat_id=CHANNEL_ID, user_id=message.from_user.id)):
    if str(referrer_id) != str(message.from_user.id):
        await bot.send_message(message.from_user.id,
                               "Отлично! Мы проверили подписку")  # при команде отправить сообщение
        time.sleep(60*60*24) # это сообщение должно отправиться через несколько дней, с него начинается следующий блок
        await bot.send_message(message.from_user.id,
                               "Начало следующего блока",
                               reply_markup=keybards.main_menu)
else:
    await bot.send_message(message.from_user.id, NOTSUB_MESSAGE, reply_markup=keybards.SubCheckMenu)


Я попытался сделать это через time.sleep(), но проблема в том что когда я запускаю бота на первом аккаунте (тестирую работу)-время работает как надо, но если в этот же момент запустить того же бота на втором аккаунте - ОН ТОЖЕ БУЕДТ СПАТЬ. Я так понял что функция time.sleep() работает на все запущенные аккаунты сразу. Как в таком случае сделать, чтобы в момент когда первый пользователь запустил бота и подписался, у второго пользователя бот так же работал, а не спал?
  • Вопрос задан
  • 276 просмотров
Решения вопроса 1
@Denis4567
import asyncio
await asyncio.sleep(60*60*24)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы