我的CherryPy應用程序做一些清潔每隔一小時用下面的代碼:Peewee說:「無法提交 - 沒有事務處於活動狀態」
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)
這裏是答案:http://stackoverflow.com/questions/25850681/cherrypy-sqlite3-peewee-crashes-when-two-processes-execute-the-same-code-at/25851123#25851123 – stenci 2014-09-15 15:37:15