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:
@@ -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()
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user