我正在为 discord app 制作一个简单的机器人 . 我正在使用 flaskdiscord.py library . 事情是,一旦机器人登录,它会在20-30秒后自动注销 . 我的代码如下:

@app.route('/login', methods=['GET', 'POST'])
def login():
    error = None
    if request.method == 'POST':
        emaild = str(request.form['email'])
        passwordd = str(request.form['password'])
        key = str(request.form['osu_key'])
        hchid = str(request.form['help_id'])
        print(emaild + passwordd)

        app_thread = threading.Thread(target=bot_run, args=(emaild, passwordd))
        print('hello')
        app_thread.setDaemon(True)
        app_thread.start()
        print('bye')

        session['logged_in'] = True
        flash('You are logged in')
        return redirect(url_for('welcome_screen'))

    return render_template('login.html', error=error)


def bot_run(email, password):
    bot.run(email, password)
    print('thread died :<')

问题是,它登录并执行其2个功能(未在上面的代码中显示) . 但过了一段时间后它退出了 . 所以我想到使用无限循环来保持线程活着: -

def bot_run(email, password):
    command = None
    while command != 'terminate':
        bot.run(email, password)
        print('thread died :<')

但如果我这样做,那么我得到以下错误:

Traceback(最近一次调用最后一次):文件“C:\ Users \ dell \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib \ threading.py”,第914行,在_bootstrap_inner self.run()文件“C中:\ Users \ dell \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib \ threading.py“,第862行,在运行self._target(* self._args,** self._kwargs)文件”E:/ PyCharm Projects / lapzbot - heroku / run.py“,第48行,在bot_run bot.run(电子邮件,密码)文件”C:\ Users \ dell \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib \ site- packages \ discord \ client.py“,第579行,在运行self.loop.run_until_complete(self.start(email,password))文件”C:\ Users \ dell \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib \ asyncio \ base_events.py“,第314行,在run_until_complete中self._check_closed()文件”C:\ Users \ dell \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib \ asyncio \ base_events.py“,line 284,在_check_closed中引发RuntimeError('事件循环已关闭')RuntimeError:事件循环已关闭

TLDR: 有人可以告诉我如何让线程持续运行吗?

完整代码:http://pastebin.com/tmeJGHXK