我正试图在齿轮箱内创建一个任务。这是我目前的代码,
import discord
import asyncio
import schedule
from discord.ext import commands
class BotTasks(commands.Cog):
def __init__(self, bot):
self.bot = bot
self.bg_task = self.loop.create_task(self.mytask())
def job():
print("task")
schedule.every().day.at("19:44").do(job)
async def mytask():
while True:
schedule.run_pending()
await asyncio.sleep(1)
def setup(bot):
bot.add_cog(BotTasks(bot))我觉得代码是正确的,但问题在于self.bg_task = self.loop.create_task(self.mytask()),还需要做些什么来代替它。谢谢。
发布于 2020-11-20 15:16:36
您可以简单地使用discord.ext.tasks
from discord.ext import tasks
class BackgroundTasks(commands.Cog):
def __init__(self, bot):
self.bot = bot
@tasks.loop(seconds=5) # <- will do this every 5 seconds
async def my_background_task(self, *args):
# do something启动它
my_background_task.start(some_arguments) # <- you can put this in a command or in the on_ready event下面是一些更有用的函数
loop.stop()
loop.cancel()
loop.restart()参考资料:
https://stackoverflow.com/questions/64931176
复制相似问题