Foros del Web » Programando para Internet » PHP »

Ejecutar funcion varias veces

Estas en el tema de Ejecutar funcion varias veces en el foro de PHP en Foros del Web. Buenas gente, les escribo porq estoy queriendo optimizar un código y bueno me gustaria saber si me pueden dar una mano como siempre lo hacen. ...
  #1 (permalink)  
Antiguo 18/01/2006, 06:01
 
Fecha de Ingreso: julio-2003
Mensajes: 43
Antigüedad: 20 años, 7 meses
Puntos: 0
Ejecutar funcion varias veces

Buenas gente,
les escribo porq estoy queriendo optimizar un código y bueno me gustaria saber si me pueden dar una mano como siempre lo hacen.

El tema es el siguiente, tengo una rutina en PHP y MySQL q utiliza la función:

Código PHP:
 $chksrv = @fsockopen($addr$port$errno$errstr4); 
Recojo todos los servidores q tengo almacenados en una tabla de la base y voy pasando uno a los datos a la funcion fsockopen con un For.

Que es lo q yo quiero optimizar? justamente eso.... tengo casi 25 servidores en la base y esta rutina se toma su tiempo en chequear todos. Más si hay servidores apagados o caidos donde la funcion fsockopen espera 4 segundos para dar una respuesta concreta.

Es posible, de alguna forma, que la funcion fsockopen no se ejecute de forma secuencial? o sea q ejecute el 1° servidor una vez q da la respuesta pasa a ejecutar el segundo servidor, etc etc. Por lo cual tengo q esperar a q chequee uno por uno.

En resumen lo q quiero es lanzar la funcion de manera multiple a todos los servidores y obtener una respuesta más rápida y no secuencial.

Espero me entiendan

Gracias de antemano
  #2 (permalink)  
Antiguo 18/01/2006, 07:01
 
Fecha de Ingreso: enero-2006
Mensajes: 25
Antigüedad: 18 años, 2 meses
Puntos: 0
yo te sugeriria el uso de Threads , para manejar tus peticiones de la manera mas adecuada , en php la ultima vez que los implemente estaban un poco inestables pero de eso ya tiene bastante tiempo ,echale un hojo de todos modos, creo que la funcion es php_fork .

otra manera busca algun algoritmo de procesos y filas , round robin y esas cosas , y asigna procesos por tiempo d espera en un ciclo , levantando las funciones de manera recursiva en base a arreglos dinamicos o hash dependiendo que informacion necesites de tus servidores.

se me ocurre tambien que puedes generar N objetos con identificacion de una clase y los creas de manera simultanea al saber tu numero de registros y datos y verificas sus resultados en una funcion recursiva hasta que un contador llege al numero de registros de recursos finalizados y los que vaya obteniendo los puedes pasar a procesos paralelos.

nada mas te recuerdo que lo recursivo consume muchos recursos , yo me iria por una solucion a threads por la naturaleza de tu funcion o "tal vez mas facil con un enfoque a objetos"

Suerte
__________________
Venloft
"Por que la vida se vive una vez, soy como soy.
no desperdicies el momento"

------------------------
MegaHost Mexico
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 00:14.