我有一个应用程序可以执行一些程序,我希望这个机器人在此工作成功完成或出现错误时不和谐地发布。 到目前为止,我有这个:
-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' 从未等待
所以我想知道我做错了什么,我以前从来不需要管理线程,我搞砸了什么?