Я пишу диссон-бота в Python, в котором уже есть два перезаписанных метода asyn c on_ready и on_message, чтобы определенным образом реагировать на сообщения.
Теперь я хотел добавить функцию , который следует вызывать раз в неделю. Я пытался что-то с asyncio.sleep (), но я не хочу запускать бота в указанное время c, а затем спать 604,800 сек c (1 неделя в секундах), чтобы повторять эту функцию каждую неделю.
Вот что я получил до сих пор:
class MyClient(discord.Client):
async def on_ready(self):
#some initial stuff
self.loop.create_task(self.routine())
async def on_message(self, message):
#reply to chat messages
await message.channel.send("Reply")
async def routine(self):
while True:
print("I'm on that routine boi")
await asyncio.sleep(3)
Это работает до сих пор, так что я могу использовать бота в раздоре и получать результаты каждые 3 секунды. Но я бы предпочел что-то вроде из модуля расписания , чтобы использовать что-то вроде
scheduler.every().sunday.at("8:55").do(self.routine())
Есть ли шанс сделать что-то подобное в комбинации с asyncio?