【发布时间】:2020-10-07 08:43:12
【问题描述】:
所以我有一个 python 脚本,我想在其中同时运行多个不和谐机器人。这些由数据库(Firebase)中有多少用户定义。我现在要做的是,我为数据库中的每个用户都有一个循环,它将它添加到一个数组中。然后为该数组中的每个用户启动一个脚本:
def main(user):
client = discord.Client()
token = db.child("users").child(user).child("token").get().val()
print(user + ": " + token)
applicationId = db.child("users").child(user).child("appid").get().val()
discordId = user
@client.event
async def on_ready():
print('Online')
@client.event
async def on_message(message):
print(message)
client.start(token, bot=False)
def testFunction(some_args):
print(some_args)
discord_thread = threading.Thread(target=main, args=(some_args,))
discord_thread.start()
for user in usersArray:
testFunction(user)
当我启动脚本时,它会一直工作到 client.start 部分。然后我得到每个线程的错误。 错误:
Exception in thread Thread-2:
Traceback (most recent call last):
File "C:\Users\jonah\AppData\Local\Programs\Python\Python37\lib\threading.py", line 926, in _bootstrap_inner
self.run()
File "C:\Users\jonah\AppData\Local\Programs\Python\Python37\lib\threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "discordnotify.py", line 39, in main
client = discord.Client()
File "C:\Users\jonah\AppData\Local\Programs\Python\Python37\lib\site-packages\discord\client.py", line 206, in __init__
self.loop = asyncio.get_event_loop() if loop is None else loop
File "C:\Users\jonah\AppData\Local\Programs\Python\Python37\lib\asyncio\events.py", line 644, in get_event_loop
% threading.current_thread().name)
RuntimeError: There is no current event loop in thread 'Thread-2'.
有没有人可以帮助我?快把我逼疯了!
【问题讨论】:
标签: python multithreading discord discord.py