【发布时间】:2014-10-21 09:25:54
【问题描述】:
我的 CherryPy 应用每小时使用以下代码进行一次清理:
def every_hour():
two_hours_ago = time.time() - 2 * 60 * 60
DbChoice.delete().where(DbChoice.time_stamp < two_hours_ago).execute()
monitor_every_hour = Monitor(cherrypy.engine, every_hour, frequency=60 * 60)
monitor_every_hour.start()
有时它会崩溃并显示以下消息:
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\peewee.py", line 2364, in execute_sql
self.commit()
File "C:\Python34\lib\site-packages\peewee.py", line 2371, in commit
self.get_conn().commit()
sqlite3.OperationalError: cannot commit - no transaction is active
这个thread 和其他人讨论了如何在直接使用 sqlite 时解决问题,但是我使用的是 Peewee,我不知道我是否对 Peewee 做错了,或者这是一个错误,我需要解决它。
我开始连接:
db = peewee.SqliteDatabase(path_name + '/doc.db', check_same_thread=False)
【问题讨论】:
标签: python sqlite cherrypy peewee