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.
Saludos,
Álvaro
--
Álvaro Hernández Tortosa
-----------
NOSYS
Networked Open SYStems
2011/9/8 Álvaro Hernández Tortosa <[email protected] <mailto:[email protected]>>
Hola, Silvia.
Que la db avise al programa me parece meter lógica de negocio
dentro de la db. Yo nunca haría eso. ¿Por qué no avisa al programa
del módem la app que escribe en la db? Me parece más lógico.
Por otra parte, yo usaría mensajería asíncrona, ¿qué sucede si
insertan -en un momento de pico- más rápido de lo que el módem es
capaz de enviar? En el mensaje puedes o bien incluir todo -en cuyo
caso no necesitas ni siquiera la bbdd- o una referencia a la db
(el id del mensaje, por ejemplo, o su PK si es otra). Otra cosa es
que a lo mejor te interese usar pgq ahí.
Saludos,
Álvaro
--
Álvaro Hernández Tortosa
-----------
NOSYS
Networked Open SYStems
El 08/09/11 16:35, Silvio Bravo Cadó escribió:
Hola Listeros, reciban un saludo, molestandolos con el siguiente
caso que no necesariamente es propio de funcionamiento de
postgresql sino de como resolver el siguiente problema:
Se tiene un modem gsm el cual esta conectado por el puerto serie
a una computadora con linux. El objetivo es hacer un servicio que
permita enviar sms por medio del modem. El trafico de peticiones
puede llegar a ser un poco intenso sobre todo en algunas horas
del dia. Se debe llegar a tener una capa abstracta como un
servicio web que permita enviar un sms. Para resolver esto decidi
dividirlo en 2 partes 1 que sera el web service y otra que sera
un programa en perl que se encargara de la comunicacion con el
dispositivo. Los 2 programas tendran en comun 1 base de datos en
postgresql que se use de intermedio entre el Web service y el
programa en perl. De tal forma que el web serivice hara un insert
en una tabla de la db cuando le soliciten enviar un sms, esta
tabla tendra un trigger que se disparara ejecutando una funcion
en pl/perl que hara un kill -HUP al proceso del programa en perl
para avisarle que hay una nueva peticion de envio de sms. El
programa en perl cachara la señal y generara un hilo que ira a la
db a buscar las peticiones de envio que esten pendientes y las
procesara.
Espero no haberlos confundido, basicamente esta es la forma en la
que tengo pensada resolverlo. Se me hace un poco rebuscada o mas
bien complicada y me gustaria saber si alguien ha hecho algo
parecido o tiene alguna otra idea sobre como resolverlo.
De antemano muchas gracias,
Un saludo.