为什么我的 discord bot 在运行循环时离线

时间:2021-04-25 12:32:24

标签: discord discord.py

您好,我的不和谐机器人有问题。我是 python 的新手,对创建自己的机器人也很陌生,但我找不到问题的答案。我正在运行一个不和谐的机器人来检查特定网站上股票的可用性。当我使用“While true: ... time.sleep(60)”循环刷新并从网站下载数据时,我的机器人只是在不和谐服务器上离线显示。我尝试将计时器更改为更长的时间,并尝试打印并向不和谐发送一些消息。我发现即使机器人处于离线状态,它也可以发送消息和所有内容。没有错误或任何警告一切正常,但机器人离线。如果有人可以帮助我解决我的问题或听说过。我会很感激的。如果有人有时间帮助我,我可以分享代码。

代码:

while True:
        Zoznam.clear()
        hodnoty = nacitaniehodnot()
        produkt = hodnoty[0]
        obrazok = hodnoty[1]
        pocetpoloziek = hodnoty[2]

        shopy = ''
        cennik = ''
        for i in Zoznam:
            shopy = shopy+i[0]+'\n'
            cennik = cennik+i[1]+'\n'

        embed = discord.Embed(title =produkt,color= 0x008FFF)
        embed.set_thumbnail(url=obrazok)
        embed.set_author(name='Heureka', url=url,icon_url="https://i1.wp.com/blog.heureka.sk/wp-content/uploads/2019/12/cropped-lupa_heureka_rgb-01.png?fit=512%2C512&ssl=1&w=640")
        embed.add_field(name="Obchod", value=shopy, inline=True)
        embed.add_field(name="Cena", value=cennik, inline=True)
        #embed.add_field(name="Doprava", value=doprava, inline=True)
        global sprava
        if pocetpoloziek != y and sprava is not None:
            await sprava.delete()
            sprava = await channel.send(embed=embed) 
            i=y
        elif not sprava:
            sprava = await channel.send(embed=embed)
        time.sleep(30)

1 个答案:

答案 0 :(得分:2)

问题很可能是由 time.sleep 造成的,因为 time.sleep 不是异步的,并且会在休眠期间阻塞所有命令。

尝试导入 asyncio import asyncio 并改用 await asyncio.sleep(30),因为它不会在休眠期间阻止其他命令运行。