Do not cache sqlite3 connection
Stop caching sqlite3 connection between calls, because a connection cannot be shared between multiple threads. Close the connection after each transaction.master
parent
769e209414
commit
ee16f00739
|
@ -3,8 +3,6 @@ import sqlite3
|
||||||
|
|
||||||
import Crossfire
|
import Crossfire
|
||||||
|
|
||||||
_dict_name = 'CFReputationConnection'
|
|
||||||
|
|
||||||
def _init_schema(con, version, *schema_files):
|
def _init_schema(con, version, *schema_files):
|
||||||
con.execute("PRAGMA journal_mode=WAL;");
|
con.execute("PRAGMA journal_mode=WAL;");
|
||||||
con.execute("PRAGMA synchronous=NORMAL;");
|
con.execute("PRAGMA synchronous=NORMAL;");
|
||||||
|
@ -32,13 +30,10 @@ def _init_db():
|
||||||
for f in init_files:
|
for f in init_files:
|
||||||
with open(f) as initfile:
|
with open(f) as initfile:
|
||||||
con.executescript(initfile.read())
|
con.executescript(initfile.read())
|
||||||
Crossfire.GetSharedDictionary()[_dict_name] = con
|
return con
|
||||||
|
|
||||||
def _get_db():
|
def _get_db():
|
||||||
d = Crossfire.GetSharedDictionary()
|
return _init_db()
|
||||||
if _dict_name not in d:
|
|
||||||
_init_db()
|
|
||||||
return d[_dict_name]
|
|
||||||
|
|
||||||
def reputation(player, faction=None):
|
def reputation(player, faction=None):
|
||||||
"""
|
"""
|
||||||
|
@ -60,6 +55,7 @@ FROM reputations
|
||||||
WHERE name=? AND faction=? AND ABS(rep) > 0;
|
WHERE name=? AND faction=? AND ABS(rep) > 0;
|
||||||
"""
|
"""
|
||||||
result = con.execute(query, (player, faction)).fetchall()
|
result = con.execute(query, (player, faction)).fetchall()
|
||||||
|
con.close()
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def record_kill(race, region, player, fraction=0.0001, limit=0.4):
|
def record_kill(race, region, player, fraction=0.0001, limit=0.4):
|
||||||
|
@ -80,3 +76,4 @@ WHERE ABS(new_rep) <= ?;
|
||||||
"""
|
"""
|
||||||
con.execute(query, (fraction, race, region, player, limit))
|
con.execute(query, (fraction, race, region, player, limit))
|
||||||
con.commit()
|
con.commit()
|
||||||
|
con.close()
|
||||||
|
|
Loading…
Reference in New Issue