Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 循环时创建后台线程_Python_Flask_Sqlalchemy_Flask Sqlalchemy - Fatal编程技术网

Python 循环时创建后台线程

Python 循环时创建后台线程,python,flask,sqlalchemy,flask-sqlalchemy,Python,Flask,Sqlalchemy,Flask Sqlalchemy,我正在使用一个python flask应用程序,在使用sqlite3数据库时,我与错误进行了长时间的斗争 当多个用户同时尝试提交一个会话时,它给出了一个错误,因此我决定用户只能在会话中添加和删除,而不能提交会话,我希望在特定时间(比如12:00)自动提交会话 如何对后台任务进行时间检查,以及当它发现是提供的时间时提交会话? 这是用于在会话中编辑对象(例如)的当前代码 @app.route('/NewRequest', methods=['GET', 'POST']) @login_require

我正在使用一个python flask应用程序,在使用sqlite3数据库时,我与错误进行了长时间的斗争 当多个用户同时尝试提交一个会话时,它给出了一个错误,因此我决定用户只能在会话中添加和删除,而不能提交会话,我希望在特定时间(比如12:00)自动提交会话 如何对后台任务进行时间检查,以及当它发现是提供的时间时提交会话? 这是用于在会话中编辑对象(例如)的当前代码

@app.route('/NewRequest', methods=['GET', 'POST'])
@login_required
def NewRequest():
    connUser=session.query(User).filter(User.id==Session.get('user_id')).one()
    if request.method == 'GET':
        Types = session.query(Req_Type.id,Req_Type.Type_name)
        Pr = session.query(Req_Priorities.id,Req_Priorities.Priority_name)
        return render_template('NewRequest.html',conn=connUser ,name=current_user.name, items=Types,priorities=Pr)
    else:
        name= request.form['Name']
        Description= request.form['Description']
        Type = request.form.get('Type')
        Priority = request.form.get('Priority')
        newRequest = Requests(name=name, Record_Created=datetime.now().strftime("%Y-%m-%d %H:%M"), Description=Description, Assigned_To=None, Type_Name=str(Type), Priority_Name=str(Priority), Status_Name='Opened', User_ID=Session.get('user_id') )
        session.add(newRequest)
        flash('New Request With Name %s Successfully Created' % newRequest.name)
        UserRequests= session.query(Requests).filter_by(User_ID=Session.get('user_id')).filter(Requests.Status_Name!='Solved').all()
            return render_template('ReqData.html',conn=connUser , title='User Requests', rows=UserRequests)
我想做一个后台任务来检查,如果时间是12:00,它就会执行

session.commit()
这条路好不好? 你认为这个应用程序的性能会更好吗?更改数据库(可能是postgresql)会解决并发提交问题吗?
我尝试使用进程运行后台循环,但它不起作用,需要它是一个线程

不确定它是否有效,但目前它正在工作

def monitoring_loop():
    while True:
        if datetime.now().strftime("%H:%M:%S")=="12:00:00":
            session.commit()
            print("Committed Changes")
            time.sleep(1)

monitoring_thread = threading.Thread(target = monitoring_loop)
monitoring_thread.daemon=True
monitoring_thread.start()
我仍然想知道其他数据库是否有人能回答我,我将不胜感激