Private
Public Access
1
0

Offline CP calculations for OTW

A new table in the database with precalculated CP values. The data
are updated through RQ/Celery asynchronous functions
This commit is contained in:
Sander Roosendaal
2017-10-25 15:17:14 +02:00
parent 470e809ebf
commit 74acd35e7a
6 changed files with 194 additions and 35 deletions

View File

@@ -489,9 +489,9 @@ def testdata(time,distance,pace,spm):
return t1 and t2 and t3 and t4
def getsmallrowdata_db(columns,ids=[]):
def getsmallrowdata_db(columns,ids=[],debug=False):
data = read_cols_df_sql(ids,columns)
data = read_cols_df_sql(ids,columns,debug=debug)
return data
@@ -548,6 +548,44 @@ def read_df_sql(id,debug=False):
engine.dispose()
return df
def deletecpdata_sql(rower_id,debug=False):
if debug:
engine = create_engine(database_url_debug, echo=False)
else:
engine = create_engine(database_url, echo=False)
query = sa.text('DELETE from cpdata WHERE user={rower_id};'.format(
rower_id=rower_id
))
with engine.connect() as conn, conn.begin():
try:
result = conn.execute(query)
except:
print "Database locked"
conn.close()
engine.dispose()
def updatecpdata_sql(rower_id,delta,cp,debug=False):
deletecpdata_sql(rower_id,debug=debug)
df = pd.DataFrame(
{
'delta':delta,
'cp':cp,
'user':rower_id
}
)
if debug:
engine = create_engine(database_url_debug, echo=False)
else:
engine = create_engine(database_url, echo=False)
with engine.connect() as conn, conn.begin():
df.to_sql('cpdata', engine, if_exists='append', index=False)
conn.close()
engine.dispose()