首页 > 解决方案 > Discord Bot,每 24 小时发送一次消息

问题描述

想请教懂Python的人。我计划让我的不和谐机器人在特定时间发送特定消息。我打算让它在某个场合提醒我和其他人。就我而言,我希望机器人每 24 小时发送一次该消息。我的代码在循环消息时有效,但它仅在我使用分钟或秒时有效。如果我尝试输入天数或小时数,它将不起作用。我还尝试输入 24 小时的分钟/秒数,但效果不佳。在此文本下方将是我的代码。这里有谁知道如何解决这个问题,或者至少找到一个替代解决方案?我很不确定如何处理任务和循环。我提前向你表示感谢。

@tasks.loop(hours=24)
async def e():
    await client.get_channel(channel id here).send("@everyone It's A New Day!")


@e.before_loop
async def before_e():
    await client.wait_until_ready()

e.start()

标签: pythondiscorddiscord.py

解决方案


你可以用Advanced Python Scheduler更好的方式来做这件事。

from apscheduler.schedulers.asyncio import AsyncIOScheduler
from apscheduler.triggers.cron import CronTrigger

async def sendNewDayMessage():
    await client.get_channel(channel_id).send("@everyone It's A New Day!")

sched = AsyncIOScheduler()
sched.start()
sched.add_job(sendNewDayMessage, CronTrigger(hour=0, minute=0, second=0)) #on 00:00

推荐阅读