Discord Py 任务未按预期工作。没有回报
Posted
技术标签:
【中文标题】Discord Py 任务未按预期工作。没有回报【英文标题】:Discordpy Tasks not working as expected. No returning 【发布时间】:2020-05-05 04:35:38 【问题描述】:@tasks.loop(seconds = 5.0)
async def remind420(self):
print("YES")
print(datetime.now().strftime("%H:%M"))
if datetime.now().strftime("%H:%M") == "16:55" or datetime.now().strftime("%H:%M") == "04:20":
await client.get_channel(499245707081940995).send("420!!")
@remind420.before_loop
async def remind420_before():
await client.wait_until_ready()
remind420.start()
没有输出。绝对没有输出。我希望时间返回或至少是。
【问题讨论】:
你能提供代码的整个上下文吗?为什么remind420
定义了self
参数而remind420_before
没有?
这是在 Cog 里面吗?还是在主 bot.py 文件中?
【参考方案1】:
确保在 before_loop 函数参数中包含所有导入和 self。如果它在 cog 内,请确保在客户端之前包含 self。在前面添加小时、分钟和计数 + 自我似乎可以解决问题。
import discord
from discord.ext import commands, tasks
from datetime import date, datetime
class ***(commands.Cog):
def __init__(self, client):
self.client = client
self.remind420.start()
@tasks.loop(seconds = 5.0, minutes=0, hours=0 count=None)
async def remind420(self):
print("YES")
print(datetime.now().strftime("%H:%M"))
if datetime.now().strftime("%H:%M") == "16:55" or datetime.now().strftime("%H:%M") == "04:20":
await self.client.get_channel(632933507399942164).send("420!!")
@remind420.before_loop
async def remind420_before(self):
await self.client.wait_until_ready()
【讨论】:
【参考方案2】:您在on_ready()
事件侦听器中缺少.start()
方法。
@bot.event
async def on_ready():
if not remind420.is_running():
remind420.start()
【讨论】:
以上是关于Discord Py 任务未按预期工作。没有回报的主要内容,如果未能解决你的问题,请参考以下文章