在我的命令上发送消息的不和谐机器人

时间:2021-06-10 05:08:15

标签: python multithreading discord bots

我有一个应用程序可以执行一些程序,我希望这个机器人在此工作成功完成或出现错误时不和谐地发布。 到目前为止,我有这个:

-discordbotfile.py-

import discord

def log_discord(mensaje, color="+"):
    try:
        TOKEN = "TOKEN"
        client = discord.Client()

        async def background():
            await client.wait_until_ready()
            channel = client.get_channel(int(11111111111111))
            await channel.send(f"""```diff\n{color} {mensaje}```""")
            await client.close()

        client.loop.create_task(background())
        client.run(TOKEN)

except Exception as e:
    print(f"\error log: {str(e)}")
    pass
return 0

现在当我第一次调用它时,它可以工作,但是第二次出现此错误:

 There is no current event loop in thread 'Thread-2'.

所以从那时起,当我尝试向不和谐发送消息时,总是会出现该错误, 例如:

-调用bot.py的第一个文件-

import discordbotfile
def process1():
    does a thing
    log_discord('thing was runned!')
    return 0
proces1()

这个帖子没有问题,但后来我有另一个电话要在另一个文件中发布

-调用bot.py的第二个文件-

import discordbotfile
def process2():
    does another thing
    log_discord('another hing was runned!')
    return 0
process2()

然后出现错误。

然后如果我想在同一个文件中进行两次调用,例如:

-twomesages.py-

import discordbotfile
def process3():
    does another thing
    log_discord('first thing was runned!')
    log_discord('second thing was runned!') <<--here it breaks
    return 0
process3()

事件循环关闭 c:\Users\moree\Desktop\paquetesredles\procesos\discordbot.py:25: RuntimeWarning: coroutine 'log_discord..background' 从未等待

所以我想知道我做错了什么,我以前从来不需要管理线程,我搞砸了什么?

0 个答案:

没有答案