> Mariano Reingart escribió: >> Alvaro: >> > Mariano Reingart escribió: >> > >> >> Para solucionar el tema si el médico se va y no desbloquea, se podría >> >> implementar algun mecanismo de señales con LISTEN y NOTIFY para >> detectar >> >> si el bloqueo sigue vigente o no. >> > >> > Hmm, ¿quién haría listen y quién notify? ¿Qué identificador se >> usaría? >> >> Se me ocurre que una forma es que el que necesita acceso (y esta >> bloqueado) podría hacer un NOTIFY sobre la misma tabla, y el LISTEN lo >> haría el que esta bloqueando. > > Pero eso significaría que el que está bloqueando tendría que estar > conscientemente examinando el socket de conexión para recibir la > notificación. Creo que sería muy difícil para el desarrollador de la > aplicación asegurarse que esto se cumple.
Si, depende el lenguaje y la aplicación, en python no es muy difícil, lanzas un thread (o no), ejecutas el LISTEN y haces un select con un timeout. Tambien con un timer podes chequear cada x segundos no haber recibido notificaciones (por ej, en el código de la misma ventana de edición). Obviamente lo más fácil es para aplicaciones GUI, así notifica al usuario que hay otro que quiere acceder, en web tendrían que usar ajax o algo así. Por eso decía que es una idea, hay que pensarlo mejor para el caso puntual. Sds Mariano > > -- > Alvaro Herrera > http://www.flickr.com/photos/alvherre/ > One man's impedance mismatch is another man's layer of abstraction. > (Lincoln Yeoh) > -- TIP 1: para suscribirte y desuscribirte, visita http://archives.postgresql.org/pgsql-es-ayuda
