没有睡眠的烧瓶倒数计时器

时间:2018-01-04 17:39:59

标签: python multithreading flask timer flask-sqlalchemy

我正在使用Flask编写一个Web应用程序,当我尝试创建一个可由高级用户启动的倒数计时器(允许低级用户在该时间范围内响应)并使用time.sleep(1 )在倒计时功能中,它会冻结所有用户的网络应用程序,直到倒计时结束。

如果在倒计时期间应用程序没有冻结,我如何在Flask中倒计时?这是一个线程问题还是我需要一个不同的策略?

@main.route('/class/<class_name>', methods = ['GET', 'POST'])
@login_required
def view_class(class_name):
    if class_name is None:
        abort(404)
    form = AttendanceForm()
    check_in_permitted = False
    c = Class.query.filter_by(id = class_name).first()
    if current_user.is_instructor():
        if form.validate_on_submit():
            t = int(form.seconds.data)
            check_in_permitted = True
            while t >= 0:
                print(t)
                time.sleep(1)
                t -= 1
            print("TIME")
            check_in_permitted = False

    elif current_user.is_user():
        if check_in_permitted == True:
            form = CheckInForm()

    return render_template('view_class.html', c = c, form = form)

0 个答案:

没有答案