Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/09/2011, 10:01
pixel1
 
Fecha de Ingreso: julio-2008
Ubicación: México
Mensajes: 150
Antigüedad: 15 años, 9 meses
Puntos: 4
Flujo para ejecuciones largas en PHP

Hola a todos, como siempre, agradezco por adelantado las atenciones al presente.

Planteo mi problema:

Estoy desarrollando un script para exportar una serie de datos de una base de datos de mysql a una en sql server; ya logré crear los diferentes scripts para hacer la exportacion por tabla (una funcion para cada tabla).

El asunto es que hay algunas tablas con mas de medio millon de registros y entonces el procesar esa tabla por si sola lleva al límite el tiempo de ejecución; mismo que no tengo permisos de configurar.

Para solucionar esto se me ha ocurrido crear una estructura como esta:

Código PHP:
    switch($_REQUEST['accion'])
    {
        default: 
            echo 
"Procesando fechas";
            
fechas(); 
            
sleep(5);
            
header("Location: index.php?accion=marca");
        break;
        
        case 
"marca":
            
sleep(5);
            echo 
"Procesando procesando marca";
            
marca();
            
header("Location: index.php?accion=region");
        break;
        
        case 
"region":
            
sleep(5);
            echo 
"Procesando regiones";
            
region();
            
header("Location: index.php?accion=distribuidor");
        break;
        
        case 
"distribuidor":
            echo 
"Procesando distribuidores";
            
distribuidor();
            
sleep(5);
            
header("Location: index.php?accion=campana");
        break;
        
        case 
"campana":
            echo 
"Procesando campañas";
            
campania();
            
sleep(5);
            
header("Location: index.php?accion=cliente");
        break;
        
        case 
"cliente":
            echo 
"Procesando cliente";
            
cliente();
            
sleep(5);
            
header("Location: index.php?accion=afiliacion");
        break;
        
        case 
"afiliacion":
            echo 
"Procesando afiliaciones";
            
afiliacion();
            
sleep(5);
            
header("Location: index.php?accion=facturacion");
        break;
        
        case 
"facturacion":
            echo 
"Procesando facturacion";
            
facturacion();
            
sleep(5);
            
header("Location: index.php?accion=punto");
        break;
        
        case 
"punto":
            echo 
"Procesando puntos";
            
punto();
            
sleep(5);
            
header("Location: index.php?accion=correo");
        break;
        
        case 
"correo":
            echo 
"Procesando correo";
            
correo();
            
sleep(5);
            
header("Location: index.php?accion=fin");
        break;
        
        case 
"fin":
            echo 
"Finalizado";
        break;    
    } 
Todavia debo parametrizar las funciones cuyas tablas tienen mas registros para ir extrayendo datos por partes.
Pero mi pregunta es: Un header("Location: algo.php"); me permitirá reiniciar el tiempo de ejecución cada vez?
__________________
Blog blog.desarrollandoideas.com

Twitter
Sígueme en Twitter