在web.py中,我需要创建一个共享变量,对于该变量,多个线程(请求)可以读取或写入该变量。
对于这种情况,首选的方式是什么?
谢谢。
发布于 2011-04-15 22:22:09
我不确定这真的是一个web.py问题,但我们一直都在为进程范围的缓存(即所有请求线程共享的dict缓存)做这类事情。我们使用web.py,但我下面的示例应该适用于任何多线程Python web服务器。
hotels.py:
cache = {}
def load_cache():
"""Load hotels into {id: data} dict cache."""
rows = db.select('hotels')
for row in rows:
cache[row.id] = row
def get_hotel(hotel_id):
"""Get data for hotel with given ID, or return None if not found."""
if not cache:
raise Exception('hotels cache not loaded')
return cache.get(hotel_id)main.py:
import hotels
def main():
hotels.load_cache()
start_server()发布于 2011-04-18 10:52:30
我发现很多代码都在使用这个容器: web.ctx
喜欢
web.ctx.orm = scoped_session(sessionmaker(bind=engine))
web.ctx.session = web.config._session你可以在一个函数中初始化它们,然后处理它们:
app.add_processor(web.loadhook(init_func))不确定它是否适用于您的场景
https://stackoverflow.com/questions/5677561
复制相似问题