내 CherryPy 응용 프로그램은 일부는 다음 코드를 사용하여 매 시간마다 청소를 수행합니다Peewee는 "커밋 할 수없는 - 어떤 트랜잭션이 활성화되지"라고
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
이를 : 때때로 그는 다음과 같은 메시지와 함께 충돌
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()
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