Pregunta

Trabajo para una tienda de software, que tiene un producto de marcador predictivo interno y necesitamos implementar una solución para obedecer las listas de NO LLAMAR.

Básicamente, tengo una base de datos con los clientes/clientes potenciales a los que necesito llamar y otra base de datos con los números de teléfono a los que no puedo llamar.Como el sistema es un marcador predictivo, basado en el rendimiento de la operación, los promedios de tiempo y demás, marcará más o menos llamadas por usuario registrado en el sistema.Por lo general, este número "mágico" es de alrededor de 3 a 4 llamadas por agente registrado.

El repositorio de números de teléfono del marcador predictivo es una base de datos PostgreSQL.El marcador predictivo recoge un grupo de números de la base de datos y envía un comando al pbx para marcar el grupo, y luego la lógica de negocios continúa para transferir las llamadas válidas a los empleados del centro de llamadas, etc. (esto es irrelevante según mi opinión). el problema es antes de la llamada).

Necesito implementar la funcionalidad de lista de no llamar.Esta lista de no llamar será proporcionada a nuestra empresa por una agencia gubernamental, en un archivo CSV, diariamente.Cada vez que recibo un nuevo archivo CSV, tengo que eliminar la antigua lista de no llamar y colocar la nueva.

Lo primero que pensé al implementarlo fue hacer un procesamiento por lotes, cruzando la LISTA DE NO LLAMADAS con mi base de datos de clientes actual.Pero creo que, dependiendo del tamaño de ambas bases de datos, la referencia cruzada requeriría mucho rendimiento y, a veces, no se podría terminar de la noche a la mañana.He tenido este tipo de problemas con el procesamiento por lotes antes y no es algo agradable de ver.

Mi segunda idea surgió cuando pensé en cómo las grandes instituciones manejan sistemas de autorización de alto rendimiento y alto rendimiento, como tarjetas de crédito o autenticación/autorización de usuarios.Pensé que sería genial crear un servicio de autenticación para los números de la LISTA DE NO LLAMADAS y cambiar el algoritmo de mi marcador predictivo para comparar cada número con este servicio de autorización antes de marcar.

Como aquí sólo estoy fabulando, no tengo idea de qué idea es la mejor, o si me equivoqué totalmente y debería mirar en otra dirección.Entonces, mi pregunta es:cual seria tu recomendacion?¿Guardar el archivo CSV NO LLAMAR en la memoria?utilizar LDAP?usar MySQL?¿PostgreSQL?¿El procesamiento por lotes?¿O definitivamente estoy jodido?

Sé que no soy la primera persona en el mundo que tiene este tipo de problema, así que por favor ilumíname.

¿Fue útil?

Solución

Su desafío, de encontrar una cantidad de entradas dentro de un vasto espacio de entradas posibles, me recuerda Listas negras/bloqueadas de DNS.

rbldnsd es un demonio DNS pequeño y rápido que está especialmente hecho para servir zonas DNSBL.Este demonio era inspirado en Dan J.Los rbldns de Bernstein programa que se encuentra en el paquete djbdns. Más rbldnsd, de Google

Tiene soporte para zonas basadas en nombres, por lo que puede convertir la lista de números a URI de estilo ENUM; por ejemplo, +1-555-4242 se convierte en 2.4.2.4.5.5.5.1.e164.arpa.Luego se ingresa en el archivo de datos rbldnsd, se compila en la memoria y se accede a él como cualquier otra lista de bloqueo.Una entrada predeterminada significa que se puede llamar o, si la entrada existe, se le asignará una entrada DoNotCall.

Sin embargo, todavía tienes el problema de la conversión por lotes, aunque sería un script algo más simple, muy posible de hacer con Perl o AWK.También es posible que pueda dividir los archivos CSV entrantes en varios archivos para su procesamiento en paralelo y una fusión final.

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