Foros del Web » Programando para Internet » PHP »

como hacer varias peticiones php sin que se cuelge el server

Estas en el tema de como hacer varias peticiones php sin que se cuelge el server en el foro de PHP en Foros del Web. Hola, Tengo un cron en php que hace varias cosas a la vez, consultas a bases de datos y consultas a webservices, tarda aproximadamente entre ...
  #1 (permalink)  
Antiguo 02/07/2011, 12:40
 
Fecha de Ingreso: marzo-2008
Mensajes: 99
Antigüedad: 16 años
Puntos: 0
Pregunta como hacer varias peticiones php sin que se cuelge el server

Hola, Tengo un cron en php que hace varias cosas a la vez, consultas a bases de datos y consultas a webservices, tarda aproximadamente entre 5 y 10 minutos en finalizar. ese cron lo ejecuto desde la web, o sea, entro a www.xxx.com/xxxxx/cron.php

El problema que estoy teniendo es que en el momento en que ese cron esta corriendo, si intento acceder a otra página de la web no entra hasta que el cron no halla terminado, pero si intento entrar a un subdominio blog.xxx.com entra sin ningun problema.

No se si es una configuracion de apache o de php para que pueda aceptar varias peticiones en el mismo instantes.

Espero que se halla entendido cual es mi problema y me puedan dar una solucion.

Muchas Gracias.
  #2 (permalink)  
Antiguo 02/07/2011, 12:45
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: como hacer varias peticiones php sin que se cuelge el server

En principio, cada script que ejecutas en un proceso separado. Php no es multithread así que no tienes un script que haga varias cosas a la vez, las hace una por una, una detrás de la otra, lanzadas desde el mismo script.
Parece que el problema es el código del cron. Puedes simular multithread con alguna classe, por ejemplo:
http://www.phpclasses.org/package/39...-requests.html
Salu2!
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 02/07/2011, 12:57
 
Fecha de Ingreso: marzo-2008
Mensajes: 99
Antigüedad: 16 años
Puntos: 0
Respuesta: como hacer varias peticiones php sin que se cuelge el server

Cita:
Iniciado por repara2 Ver Mensaje
En principio, cada script que ejecutas en un proceso separado. Php no es multithread así que no tienes un script que haga varias cosas a la vez, las hace una por una, una detrás de la otra, lanzadas desde el mismo script.
Parece que el problema es el código del cron. Puedes simular multithread con alguna classe, por ejemplo:
http://www.phpclasses.org/package/39...-requests.html
Salu2!
Claro, entiendo lo que decis.
Pero si no es multithread como es que para un subdominio mio si funciona??? se utiliza un php para cada subdominio???
  #4 (permalink)  
Antiguo 02/07/2011, 14:45
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: como hacer varias peticiones php sin que se cuelge el server

No, pero hay un proceso PHP para cada script que ejecutas. Casi seguro que el problema es la DB y no el scritp PHP. Reduce el tráfico en el cron job a ver qué pasa. NO el tiempo de ejecución sino la carga de trabajo de la db. Salu2
__________________
Fere libenter homines, id quod volunt, credunt.
  #5 (permalink)  
Antiguo 02/07/2011, 15:48
 
Fecha de Ingreso: marzo-2008
Mensajes: 99
Antigüedad: 16 años
Puntos: 0
Respuesta: como hacer varias peticiones php sin que se cuelge el server

El problema no es de base de datos. El proceso tiene que esperar 1 segundo entre cada registro a procesar por restriccion del webservice y le puse un sleep(1). Con eso me aseguro que por 1 segundo el script se quede parado y no realice ninguna query ni nada de logica, duerme 1 segundo.

La verdad es que no se que pueda estar pasando...
  #6 (permalink)  
Antiguo 26/07/2011, 07:47
 
Fecha de Ingreso: marzo-2008
Mensajes: 99
Antigüedad: 16 años
Puntos: 0
Respuesta: como hacer varias peticiones php sin que se cuelge el server

Vuelvo a reflotar el tema para no abrir otro post igual...

Me dijeron que cuando hay una petición a un php se utiliza una session de ese archivo y es por eso que si intento abrir otra url no responde hasta que halla terminado la anterior y que hay una manera de liberar esa session pero no se acuerda como, estuve buscando pero no encuentro nada al respecto.

Alguien sabe como hacer eso???
  #7 (permalink)  
Antiguo 26/07/2011, 08:47
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: como hacer varias peticiones php sin que se cuelge el server

apache2 si es multi thread y él es el que se encarga de crear un hilo para cada petición, php no controlaría eso.

el problema de php es que consume mucho tiempo en analizar/compilar en memoria cada script cada vez que se ha realizado un request (petición), por lo cual es de mucha ayuda contar con un mecanizmo de cache como xcache, APC, eAcelerator, entre otros
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #8 (permalink)  
Antiguo 26/07/2011, 09:05
 
Fecha de Ingreso: marzo-2008
Mensajes: 99
Antigüedad: 16 años
Puntos: 0
Respuesta: como hacer varias peticiones php sin que se cuelge el server

pero si pongo por ejemplo apc eso no evita que hasta que no se termine una petición no procese otra, lo digo porque tengo apc en mi local y sigo con ese problema.

volvemos al ejemplo:

corro el script:
www.xxx.com/xxxxx/cron.php

si entro a:
www.xxx.com/index.php --- queda cargando hasta que termine el cron.

si entro a:
dev.xxx.com/index.php --- es un subdominio y no se ve afectado por el cron.
  #9 (permalink)  
Antiguo 26/07/2011, 09:11
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: como hacer varias peticiones php sin que se cuelge el server

@carlosdanielmou tendrás mal configurado el servidor web (si es que usas apache u otro), porque desde mi localhost puedo ejecutar varios scripts php mientras está otro cargando.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #10 (permalink)  
Antiguo 26/07/2011, 09:33
 
Fecha de Ingreso: marzo-2008
Mensajes: 99
Antigüedad: 16 años
Puntos: 0
Respuesta: como hacer varias peticiones php sin que se cuelge el server

Viendo la documentación de esta función aparentemente solucionaría el problema.

http://php.net/manual/es/function.se...rite-close.php

Mañana les cuento...
  #11 (permalink)  
Antiguo 26/07/2011, 09:40
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: como hacer varias peticiones php sin que se cuelge el server

esa situación ocurre en el caso de 2 hilos consultando la misma variable de sesión, cosa que no ocurre con 2 clientes distintos los cuales tienen 2 sesiones diferentes.

obviamente sucede en localhost al tener un navegador que conserve la misma cookie y por lo tanto el mismo PID
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #12 (permalink)  
Antiguo 26/07/2011, 09:53
 
Fecha de Ingreso: marzo-2008
Mensajes: 99
Antigüedad: 16 años
Puntos: 0
Respuesta: como hacer varias peticiones php sin que se cuelge el server

ahhh, ok.

Entonces yo veo que queda cargando porque comparto la session pero si alguien más quiere acceder lo hace sin problemas!!!

maycolalvarez muchas gracias. Esta bueno poder entender por que suceden las cosas.

Etiquetas: peticiones, server
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:09.