好的。 下面是我不加锁时的错误信息。
sqlite3 的数据库是没有问题的。加锁之后,就一直好用。
multiprocessing.pool.RemoteTraceback:
"""
Traceback (most recent call last):
File "/home/zlu/anaconda3/envs/py37/lib/python3.7/site-packages/peewee.py", line 3005, in execute_sql
cursor.execute(sql, params or ())
sqlite3.DatabaseError: database disk image is malformed
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/zlu/anaconda3/envs/py37/lib/python3.7/multiprocessing/pool.py", line 121, in worker
result = (True, func(args, **kwds))
File "/home/zlu/anaconda3/envs/py37/lib/python3.7/site-packages/vnpy/app/cta_strategy/backtesting.py", line 1204, in optimize
engine.load_data()
File "/home/zlu/anaconda3/envs/py37/lib/python3.7/site-packages/vnpy/app/cta_strategy/backtesting.py", line 243, in load_data
end
File "/home/zlu/anaconda3/envs/py37/lib/python3.7/site-packages/vnpy/app/cta_strategy/backtesting.py", line 1252, in load_bar_data
symbol, exchange, interval, start, end
File "/home/zlu/anaconda3/envs/py37/lib/python3.7/site-packages/vnpy/trader/database/database_sql.py", line 352, in load_bar_data
data = [db_bar.to_bar() for db_bar in s]
File "/home/zlu/anaconda3/envs/py37/lib/python3.7/site-packages/peewee.py", line 6655, in iter
self.execute()
File "/home/zlu/anaconda3/envs/py37/lib/python3.7/site-packages/peewee.py", line 1812, in inner
return method(self, database, args, *kwargs)
File "/home/zlu/anaconda3/envs/py37/lib/python3.7/site-packages/peewee.py", line 1883, in execute
return self._execute(database)
File "/home/zlu/anaconda3/envs/py37/lib/python3.7/site-packages/peewee.py", line 2054, in _execute
cursor = database.execute(self)
File "/home/zlu/anaconda3/envs/py37/lib/python3.7/site-packages/peewee.py", line 3018, in execute
return self.execute_sql(sql, params, commit=commit)
File "/home/zlu/anaconda3/envs/py37/lib/python3.7/site-packages/peewee.py", line 3012, in execute_sql
self.commit()
File "/home/zlu/anaconda3/envs/py37/lib/python3.7/site-packages/peewee.py", line 2783, in exit
reraise(new_type, new_type(exc_args), traceback)
File "/home/zlu/anaconda3/envs/py37/lib/python3.7/site-packages/peewee.py", line 183, in reraise
raise value.with_traceback(tb)
File "/home/zlu/anaconda3/envs/py37/lib/python3.7/site-packages/peewee.py", line 3005, in execute_sql
cursor.execute(sql, params or ())
peewee.DatabaseError: database disk image is malformed
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/zlu/Work/vnpy/test/vnpy/tui_apps/cta_backtesting.py", line 59, in <module>
df = engine.run_optimization(setting)
File "/home/zlu/anaconda3/envs/py37/lib/python3.7/site-packages/vnpy/app/cta_strategy/backtesting.py", line 572, in run_optimization
result_values = [result.get() for result in results]
File "/home/zlu/anaconda3/envs/py37/lib/python3.7/site-packages/vnpy/app/cta_strategy/backtesting.py", line 572, in <listcomp>
result_values = [result.get() for result in results]
File "/home/zlu/anaconda3/envs/py37/lib/python3.7/multiprocessing/pool.py", line 657, in get
raise self._value
peewee.DatabaseError: database disk image is malformed