¿Hay alguna preocupación que debería tener sobre el almacenamiento de un objeto de bloqueo Python en una sesión del cubilete?

StackOverflow https://stackoverflow.com/questions/2794829

Pregunta

Hay una cierta página en mi sitio web donde quiero evitar que el mismo usuario de visitar dos veces en una fila. Para evitar esto, tengo la intención de crear un objeto de bloqueo (de librería de hilos de Python). Sin embargo, necesitaría para almacenar que a través de sesiones. ¿Hay algo que deba tener en cuenta al tratar de almacenar un objeto de bloqueo en una sesión (en concreto una sesión del cubilete)?

¿Fue útil?

Solución

El almacenamiento de una instancia threading.Lock en una sesión (o en cualquier otro lugar que las necesidades de serialización) es una idea terrible, y es de suponer que obtendrá una excepción si se intenta (ya que un objeto no puede ser serializado, por ejemplo, no puede ser pickled). Un enfoque tradicional para la serialización de los procesos de cooperación se basa en archivo de bloqueo (en archivos "artificiales" por ejemplo, en un directorio como /tmp/locks/<username> si desea que el bloqueo sea por usuario, como usted indica). Creo que la entrada de la Wikipedia hace un buen trabajo de describir el área general; si nos qué sistema operativo que estés orden de marcha decir, podríamos sugerir algo más específico (por desgracia no creo que hay una solución multiplataforma para esto).

Otros consejos

Me he dado cuenta de que esta era una pregunta terribles ya que el bloqueo de una cerradura y guardarlo en la sesión de toma dos pasos anulando así el propósito de acciones atómicas de la cerradura.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top