Foros del Web » Programando para Internet » PHP »

Consulta dificililla

Estas en el tema de Consulta dificililla en el foro de PHP en Foros del Web. Hola a todos, He visto este foro y la verdad es que me ha encantado. Programo bastante en php aunque no soy ningún experto. Digamos ...
  #1 (permalink)  
Antiguo 13/01/2004, 10:25
 
Fecha de Ingreso: enero-2004
Mensajes: 63
Antigüedad: 20 años, 3 meses
Puntos: 0
Consulta dificililla

Hola a todos,

He visto este foro y la verdad es que me ha encantado. Programo bastante en php aunque no soy ningún experto. Digamos que en los temas que me muevo y que necesito me desenvuelvo bien pero en cuanto me sacas de ahí... pero todo es ir aprendiendo.

La duda que os plateo es un poco dificililla creo. La cosa es que un programa que tengo hecho debe leer varios documentos xml remotos (esto es indiferente, digamos que debe leer varios documentos que están en otros servidores). Y lógicamente php los lee uno detrás de otro. Entonces como son unos 15, pues tarda bastante pues si por ejemplo cada uno tarda un segundo en responder, pues son 15 segundos. Lo de cachearlos no sirve porque cada vez que se leen, muestran unos datos diferentes.

Lo que quiero es acelerar esto. Como no puedo hacer que esos servidores reaccionen más rápido, pues la única forma es conseguir que nuestro servidor los lea al mismo tiempo, es decir, en lugar de tardar un segundo en cada uno, en un segundo cargar todos al mismo tiempo. Entonces me pregunto cómo podría hacerlo.

He probado de todo, incluidas algunas soluciones "creativas" aunque raras. Por ejemplo una página que leía un documento remoto y otra con 15 frames y que carga esa una vez en cada frame de manera que efectivamente lee los 15 a la vez. Pero esta solución no me sirve porque todo esto debe ser totalmente oculto al usuario. Es decir, él solo tiene que pulsar en un sitio y que se le muestre una página creada con la información leída de los 15 documentos remotos.

¿Conoceis alguna forma de hacerlo? Si no fuese posible en php o fuera muy difícil, pues tampoco me importaría hacerlo aunque sea en perl (aunque no tengo casi ni idea de perl). Aunque mi programa esté en php, pues creo que eso otro no importaría.

Os lo agradecería mucho pues soy parte de una empresa y conseguir esto nos ayudaría muchisimo. Realmente llevo mucho tiempo con esta idea pero no hay manera. Este tema se me escapa.

Gracias de antemano.

Saludos
Javier
  #2 (permalink)  
Antiguo 13/01/2004, 14:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Hay un tema que denominan "remote scripting" que se basa en uso de frames ocultos o iframes e incluso servicios tipo SOAP y otras técnicas que te pueden ayudar para recoger información desde varios sitios -> trabajarlas con PHP y entregarlas a la página que lo solicita con técnicas de javascript para que esas "llamadas" a esos códigos simultaneamente sea lo más transparente posbible cara al cliente (sin recargas de página aparente).

Puedes verlo en:
http://www.ashleyit.com/rs/

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 13/01/2004, 15:35
 
Fecha de Ingreso: enero-2004
Mensajes: 63
Antigüedad: 20 años, 3 meses
Puntos: 0
Muchas gracias por tu respuesta Cluster. De todos modos no me sirve. El problema es que eso requiere de un navegador. Es decir, utilizando eso el proceso consistiría en que un usuario abriría con su navegador una página de frames de forma oculta la cual tendría en cada frame un php que leería un documento xml. Eso sería válido para leer varios al mismo tiempo efectivamente.

El problema es que algunos de estos procesos se tienen que hacer sin intervención del navegador. Por ejemplo, hay un proceso cron (una tarea programada para que la haga el servidor cada X tiempo) que ejecuta un script php cada poco. Este script lee los 15 documentos remotos seguidos (uno detrás de otro). Pero sería necesario que los lea simultaneamente aunque sin embargo creo que así no se puede usar ni java ni frames porque quien abre el script no es un navegador de un usuario, sino el servidor.

Una persona me dijo por ahí que había una función en php (pcntl_fork) que servía para esto (hacer que el php ejecute varias funciones a la vez en lugar de uno detrás de otro). Pero no me funciona en mi instalación de php. Alguien me podría indicar si conoce el equivalente en perl? No tengo casi ni idea de perl pero si por ahí es posible... Es que este problema es bastante complicado.

Gracias.
  #4 (permalink)  
Antiguo 14/01/2004, 07:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
La funcion que describes sólo funciona bajo PHP en entorno Linux/*NIX.

Si crees que con Perl lo vas a solventar .. acude a dicho foro que seguro que ahí te orientan mejor.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 18:14.