El 12/09/11 22:50, Espartano escribió:
2011/9/11 Álvaro Hernández Tortosa<a...@nosys.es>:
El 09/09/11 17:05, Silvio Bravo Cadó escribió:

Wow no habia escuchado sobre pgq, se ve interesante, aunque creo imho que es
tambien meter logica de negocio dentro de la db, que para este caso no le
veo problema ya sea por pgq o por listen/notify.

     Hola, Silvio (ahora sí, perdón por la lectura rápida de tu nombre). Yo
no creo que eso sea meter lógica de negocio, es usar un sistema de colas
(que, tangencialmente, usa una bbdd). De hecho, es muy común que un sistema
de colas use una bbdd para la persistencia. Lo importante es que sea una
aplicación la que, tras escribir en tu bbdd, comunique a la cola el mensaje.
Y luego, otra app, lea de la cola y envíe el sms.
Aquí el problema de seguir ese esquema es:  que pasaría si la
aplicación ya ha insertado en la base de datos y se pierde la
conectividad de red ? o se va la luz, o alguien pone un firewall hacia
la base de datos ?
Hola, yo no veo ningún problema. El mensaje se pasa a la cola de mensajes. Los sistemas de colas de mensajes garantizan la persistencia en los datos.

Si te parece que se pudiera escribir en la db y se perdiera antes de llegar a la cola, siempre puedes: insertar db -> insertar cola -> actualizar en db que se ha insertado en cola.


Yo creo que para ese asunto es mejor que la db nofique al programa que
envía los sms que hay mensajes listos para ser enviados, si ocurre una
falla de energía o lo que sea lo mas que podría pasar es que enviaras
dos veces el mismo mensaje.
Enviar dos veces el mismo mensaje podría ser un problema (depende del caso de uso, yo lo desconozco). En todo caso, ¿qué sucede en tu caso si es la app la que no está disponible y la db intenta comunicarse con ella en un trigger? Eso no es muy bonito, tiene los mismos problemas que comentas.

Cada misión, a su capa correspondiente. Lo que yo comenta no sufre de los problemas que sugieres.

    Saludos,

    Álvaro

--
Álvaro Hernández Tortosa


-----------
NOSYS
Networked Open SYStems

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a