Ver Mensaje Individual
  #4 (permalink)  
Antiguo 24/11/2019, 10:14
tuadmin
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años, 6 meses
Puntos: 120
Respuesta: Me replica el envia de correo

Cita:
Iniciado por teslas Ver Mensaje
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 original
  1. function enviarEmails(){
  2.      $.get("http://tudominio.com/envio_email_lote.php")
  3.       .then(function(ay_datos){
  4.         ay_datos && enviarEmails();
  5. },function() {
  6.     alert("Termino el envio de Emails");
  7. });
  8. }
  9. //y aqui invocamos la funcion para que sea infinito hasta que la pagina de [B]envio_email_lote.php[/B] ya no retorne nada
  10. enviarEmails();
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9