In web.py i need to create a shared variable, for which multiple threads(requests) can read or write to that variable.
What is the preferred way, for this kind of a situation.
thanks.
In web.py i need to create a shared variable, for which multiple threads(requests) can read or write to that variable.
What is the preferred way, for this kind of a situation.
thanks.
I'm not sure this is really a web.py question, but we do this sort of thing all the time for process-wide caches (that is, dict caches that are shared by all request threads). We use web.py, but my example below should apply to any multi-threaded Python web server.
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()