Cita:
Iniciado por teslas Hola Triby
Gracias por responder, el envio de correos lo efectuo bien, me puedes decir como se haria por 'lotes' ??
Y donde puedo tener ejemplos.
saludos
lo de enviar por lotes se refirio a que envies primero 20, luego abres otra url y envias otros 20 , asi hasta enviarlos todos, por que como lo estas haciendo se referia a que los servidores WEB tiene un limite preconfigurado, para evitar Procesos infinitos que consuman recursos del servidor y generalmente tiene una duracion de 30 segundos, pero a esto, muchos programadores en php se olvidan limpiar la memoria ram, y empiezan a acumular datos, , como consultas SQL infinitas, y son miles y miles de registros, que cuando las recorres y las procesas, van acumulandose, hasta que tu script empieze a consumir 30mb ,40mb, 128mb,256mb, y lo mismo el servidor al ver que esta sobrepasando su limite, Lo mata el proceso en el mejor de los casos.
----resumiendo, la forma correcta de tratar datos infinitos es que tengas un proceso por Lotes, por Ejemplo en tu TABLA MYSQL, puedes obtener solo los primeros 20 registros con ultima fecha y enviar tus emails, luego actualizar ese registro, y agregar a cada uno en un FIELD o campo, un dato como "enviado", y asi vuelves a ejecutar tu SCRIPT y volveras a obtener los 20, hasta el punto que tu base de datos no retorne nada.
y quien se ocupara de hacer ese Bucle de LOTE por LOTE, pues AJAX , y le puedes poner como condicional, si Ejecutas el AJAX, si Hay datos, la proxima vez, volvera a ejecutar el AJAX, y si no hay datos, entonces termina el BUcle
serial algo asi
Código Javascript
:
Ver originalfunction enviarEmails(){
$.get("http://tudominio.com/envio_email_lote.php")
.then(function(ay_datos){
ay_datos && enviarEmails();
},function() {
alert("Termino el envio de Emails");
});
}
//y aqui invocamos la funcion para que sea infinito hasta que la pagina de [B]envio_email_lote.php[/B] ya no retorne nada
enviarEmails();