首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在discord.py中的齿轮内创建后台任务?

如何在discord.py中的齿轮内创建后台任务?
EN

Stack Overflow用户
提问于 2020-11-20 14:24:02
回答 1查看 1.5K关注 0票数 0

我正试图在齿轮箱内创建一个任务。这是我目前的代码,

代码语言:javascript
复制
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()),还需要做些什么来代替它。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-11-20 15:16:36

您可以简单地使用discord.ext.tasks

代码语言:javascript
复制
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

启动它

代码语言:javascript
复制
my_background_task.start(some_arguments) # <- you can put this in a command or in the on_ready event

下面是一些更有用的函数

代码语言:javascript
复制
loop.stop()
loop.cancel()
loop.restart()

参考资料:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64931176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档