I'm not sure that this is really a web.py question, but we do all the time for the caches of all processes (i.e. cache files shared by all request flows). 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()
source share