¿Es threading.local () una forma segura de almacenar variables para una sola solicitud en Google AppEngine?

Tengo una aplicación de Google appengine donde deseo establecer una variable global solo para esa solicitud. ¿Puedo hacer esto?

En request_vars.py

# request_vars.py global_vars = threading.local() 

En otro.py

 # another.py from request_vars import global_vars get_time(): return global_vars.time_start 

En main.py

 # main.py import another from request_vars import global_vars global_vars.time_start = datetime.datetime.now() time_start = another.get_time() 

Preguntas: considerando multihilo, solicitudes concurrentes, comstackción en Google AppEngine y cientos (incluso miles) de solicitudes por segundo, ¿el valor de time_start siempre será igual al valor establecido en global_vars.time_start en main.py por solicitud? ¿Es seguro usarlo con multithreading / threadsafe habilitado?

Sí, usar threading.local es un método excelente para establecer un global por solicitud. Su solicitud siempre será manejada por un hilo, en una instancia en la nube de Google. Ese valor local del hilo será único para ese hilo.

Tenga en cuenta que el subproceso puede reutilizarse para futuras solicitudes y siempre restablezca el valor al inicio de la solicitud.