entonces lo que haces, es como usar host virtuales en apache y uno se encarga del trabajo pesado de scripts?
Realmente lo que pasa es esto. Una contraparte de nosotros genera mensajes de alerta y nosotros tenemos un gateway de envío de SMS.
El problema es que el gateway te envía solo un mensaje a la vez, así que tenes que hacer:
a) Una cola de mensajes y enviarlos
b) Un monton de scripts paralelos
Realmente como la carga de mensajes aún no es muy grande lo que hacemos es hacer la cola de mensajes. Esta cola tarda unos 2-3min en terminar de enviar la lista.
EL algoritmo es mas o menos el siguiente:
-El primer request lee el mensaje y la lista de contactos. Lanza el proceso y crea un archivo .lck que sirve para identificar que esta trabajando el envio de mensajes. El proceso comienza a enviar los SMS uno por uno.
-Si viene un cliente y envia otra alerta, es agregada a la cola, si aun se estan enviando SMS entonces no se abre un nuevo proceso sino que se deja ejecutando el que esta. El proceso cuando termina de enviar mensajes revisa si hay mensajes nuevos, si los hay vuelve a repetir el envío y si no termina. Cuando el proceso termina se borra el archivo .lck.
La página en asp simplmente lanza el proceso.
Disclaimer: Yo se que para estas cosas existe la comunicacion entre procesos, pero se supone que la plataforma es portable y todas las soluciones de intercomunicacion de procesos portables implican añadir complejidad extra al programa que realmente NO NECESITA. Realmente el archivo .lck funciona bien, luego con mas carga de SMS si habrá que implementar algun sistema de IPC más formal.
Naruto quiere hacer algo similar, solo que quiere verificar el fin del proceso. Que la tiene fácil, porque en el momento que el archivo exista signiica que se dejo de ejecutar el otro proceso.
Tenemos otra aplicacion que corre en backgrund que calcula poblaciones y tarda su toque. Obviamente se tiene que ejecutar en background porque sino se traba el cliente.