@Mansurkolonki

Как реализовать авто-отправку сообщений в определённый день недели?

Нужно чтоб бот отправлял сообщение каждую субботу в 6 вечера, как это сдлеать?
Я сначала думал сделать это так.
@tasks.loop(hours=8.0)
async def auto_send():
    channel = await client.fetch_channel('channel_id')
    await channel.send('GOOD MORNING!')

И вместо 8 часов указать столько времени сколько должно пройти, однако, думаю будет погрешность во времени, поэтому хотелось бы улучшить .
  • Вопрос задан
  • 177 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Flexonimus
Не будет. Отсчёт времени заново начинается не после, а перед началом процесса, так что когда условные 8 часов проходят, сначала начинается отсчёт, и параллельно с ним выполняется процесс. Но если паранойя мучает, то можно, чтобы время запрашивалось у системы, и если оно наступило, отправлять смс и прибавлять к переменной хранящей дату следующей отправки ещё недельку
Ответ написан
Комментировать
LIREN
@LIREN
Пунктумофоб
Я не знаю как по другому, вызовите сообщение в субботу 6 вечера и теперь оно будет кидать сообщения каждую субботу

@client.command()
async def auto_send():
    channel = await client.get_channel("channel_id")
    while True:
        await channel.send("message_1")
        await asyncio.sleep(604800) # Неделя
        await channel.send("message_1")
        await asyncio.sleep(604800)


¯\_(ツ)_/¯
Ответ написан
Ваш ответ на вопрос

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

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