我在Heroku上有一个使用Flask/Redis/Postgres的应用程序,它正在记录用户输入和计数的结果
为了克服Heroku共享资源的不足,我使用一个唯一的用户名&;计数器,并根据需要获取它们
# Redis Connection
HEROKU_REDIS = os.getenv('REDIS_URL')
redis = redis.from_url(HEROKU_REDIS)
# Set User for session
USER = secrets.token_urlsafe(4) # User to store in the session.
redis.set(str(USER), USER) # Set unique user token
# Set Counter for session
COUNTER = 0
counter_id = secrets.token_urlsafe(4) # Short username is fine
redis.set(str(counter_id), COUNTER) # Set unique counter token
然后调用各种函数,并根据需要获取值
if COUNTER == 0:
generate_image() # generates the first image in the background to match reponse to image.
COUNTER += 1
redis.set(str(counter_id), COUNTER) # Set Redis Token
else:
process_answer(recorded_result) # Answer Function
write_data()
generate_image()
COUNTER += 1
redis.set(str(counter_id), COUNTER) # Set Redis Token
它存储在全局字典中,在创建新数据时重新生成该字典:
def process_answer(recorded_result):
global user_data
user_data = {
'user': str(redis.get(str(USER))),
'counter' : int(redis.get(str(counter_id))),
'correct': 0,
'near_miss' : 0,
'recorded_result' : "recorded_result",
}
。。。然后推到一个分贝
除了重复两次之外,这一切都非常有效。 如果手表计数器I是1两次,那么是2两次,然后是3两次。 我一辈子都不明白为什么会发生这种事
此处的实时版本:colourdata.org
Git文件here(此文件作为CSV输出,而live不作为CSV输出)
目前没有回答
相关问题 更多 >
编程相关推荐