从高度访问的数据库中检索数据

时间:2015-02-28 17:04:22

标签: python database python-2.7 sqlite cherrypy

我正在构建一个Web应用程序,简而言之,它允许访问数据库以添加,搜索和查看其中的数据。

问题在于后端数据需要大量处理,这可以一次锁定数据库大约5秒钟,如果Web应用程序在此期间尝试访问,则会出现超时并且失败。

示例:

Retrieve_initial_data()
#Step1 processing
Save_step1_results_to_db()
#step2 processing
Save_step2_results_to_db()
....

这将持续到所有步骤完成并最终

....
mark_initial_data_as_processed()
#End processing
database.commit()

我理解在每次保存后放置database.commit()会在每个处理步骤中释放数据库,但如果这样做并且发生错误,程序退出,则初始数据将被取消为未处理再次尝试处理导致完整性错误。

所以问题是,解决这个问题的最有效方法是什么?要在后台进行繁重的处理,同时仍然可以从Web应用程序快速响应。即没有等待数据库解锁很长时间。

我已经查看了Python Docs中的回滚,但它们只回到最后一次提交()

编辑:这是我得到的错误代码OperationalError: database is locked

0 个答案:

没有答案