Foros del Web » Programando para Internet » PHP »

tuberias

Estas en el tema de tuberias en el foro de PHP en Foros del Web. hola gente, en busca de la optimizacion de mi script creo que me puede ayudar la creacion de una tuberia para asi ejecutar una llamada ...
  #1 (permalink)  
Antiguo 27/12/2011, 21:38
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 21 años, 5 meses
Puntos: 5
tuberias

hola gente, en busca de la optimizacion de mi script creo que me puede ayudar la creacion de una tuberia para asi ejecutar una llamada curl multiple en una tuberia, ya que asi se ejecutaria como un subproceso aparte, el tema es que el script que iria en la tueria necesita argumentos para correr, es adecuado pasarle los argumentos mediante una llamada curl con post?

lo he realizado de la siguiente manera:

Código PHP:

$tuberia 
proc_open("curl --data 'api_key=$api_key&CRR_Cuaderno=$CRR_Cuaderno&cookie=$cookie&Tip_Causa=$TIP_Causa&Rol_Causa=$Rol_Causa&Cod_Tribunal=$Cod_Tribunal' 'http://192.168.0.100/bkp/html-scapper-jud/new-engine/Estable/robot/pipe_threads.php'",
  array(
    array(
"pipe","r"), //stdin
    
array("pipe","w"), //stdout
    
array("pipe","w")  //stderr
  
),
  
$pipes);

$salida_pipe stream_get_contents($pipes[1]);
fclose($pipes[0]);
fclose($pipes[1]);
fclose($pipes[2]);
$retorno_pipe proc_close($tuberia);

return 
json_decode($salida_pipe); 
el archivo a ejecutar como proceso independiente:

Código PHP:
include("bd.class.php");
$db = new db_class;
$db->connect();    
    
include(
"LI-engine.php");
$mc = new LegIntAPI();
$mc->getHeaders false;
$mc->getContent true;

$cookie $_POST['cookie'];
$CRR_Cuaderno explode("_"$_POST['CRR_Cuaderno']);
$TIP_Causa explode("_"$_POST['Tip_Causa']);
$Rol_Causa $_POST['Rol_Causa'];
$Cod_Tribunal $_POST['Cod_Tribunal'];

// realiza la llamada al cuaderno

$url_cuadernos "http://civil.poderjudicial.cl/CIVILPORWEB/AtPublicoDAction.do?";

$rol_data explode("-"$Rol_Causa);

$url "http://civil.poderjudicial.cl/CIVILPORWEB/AtPublicoDAction.do";  

$total_cuadernos count($CRR_Cuaderno);

$curl_arr = array();
$master curl_multi_init();

for(
$i 0$i $total_cuadernos$i++)
{
  
$data = array();
  
$data['TIP_Causa'] = $rol_data['0'];
  
$data['ROL_Causa'] = $rol_data['1'];
  
$data['ERA_Causa'] = $rol_data['2'];
  
$data['COD_Tribunal'] = $Cod_Tribunal;
  
  
$data['TIP_Cuaderno'] = $TIP_Causa[$i]; 
  
  
$data['GLS_Cuaderno'] = "cualquier_cuaderno";
  
$data['CRR_IdCuaderno'] = $CRR_Cuaderno[$i]; 
  
$data['TIP_Informe'] = "1";
  
$data['FLG_Caratula'] = "0";
  
$data['TIP_Cargo'] = "3";
  
$data['COD_Corte'] = "null";
  
$data['FLG_ImpresionTribunal'] = "1";
  
$data['CRR_Cuaderno'] = $CRR_Cuaderno[$i];
  
$data['irAccionAtPublico'] = "Ir+a+Cuaderno";
  
$data['FLG_Vuelta'] = "null";
  
  
$cuaderno_data $mc->compile_post_data($data);    
  
  
$curl_arr[$i] = curl_init($url);
  
curl_setopt($curl_arr[$i], CURLOPT_RETURNTRANSFERtrue);
  
curl_setopt($curl_arr[$i], CURLOPT_POST1);
  
curl_setopt($curl_arr[$i], CURLOPT_POSTFIELDS$cuaderno_data);
  
curl_setopt($curl_arr[$i], CURLOPT_COOKIEFILE$cookie);
  
curl_setopt($curl_arr[$i], CURLOPT_FOLLOWLOCATION  ,1);
  
curl_multi_add_handle($master$curl_arr[$i]);
  
}


// inicio del multi threading ------------------------------------------------------------------------------------------------------------------------    

  
do {
      
$mrc curl_multi_exec($master$threads);
  } while (
$mrc == CURLM_CALL_MULTI_PERFORM);
  
  while (
$threads && $mrc == CURLM_OK) {
      if (
curl_multi_select($master) != -1) {
          do {
              
$mrc curl_multi_exec($master$threads);
          } while (
$mrc == CURLM_CALL_MULTI_PERFORM);
      }
  }


// busqueda coincidencias en los cuadernos -------------------------------------------------------------------------------------------------------------    


for($i 0$i $total_cuadernos$i++)
{
  
$results curl_multi_getcontent  $curl_arr[$i]  );

  
curl_multi_remove_handle($master$curl_arr[$i]);
 
// curl_multi_close($master);

  
  //$consulta = mysql_query($sql_log, $conn);


// buqueda de fechas en el cuaderno

  
$fechas_arr = array();
  
$fechas_arr $mc->MuestraFecha($results);
  
//array_unshift($fechas_arr, "05/12/2011");

// Nombre del Cuaderno

  
$nombre_cuaderno $mc->Nombre_Cuaderno($results);

// Archivo asociado al movimiento de la causa    

  
$attachment $mc->Archivo_Movimiento($results);
   

 
$fecha_actual date("d/m/Y");

 
$fecha_menos96hs date('d/m/Y',time()-(4*24*60*60)); // 4 dias
 
$fecha_menos72hs date('d/m/Y',time()-(3*24*60*60)); // 3 dias
 
$fecha_menos48hs date('d/m/Y',time()-(2*24*60*60)); // 2 dias
 
$fecha_menos24hs date('d/m/Y',time()-(24*60*60)); // 1 dia
            
 
if(array_search($fecha_actual$fechas_arr) === 0):
      
$cuaderno utf8_encode(substr($nombre_cuaderno,2,-2));
      
$movimiento_bol "TRUE";    
      
$fecha_mov $fecha_actual;
      
$archivo_mov_causa $attachment;
      
$debug "La fecha actual es el primer elemento del cuaderno: " .$cuaderno"\r\n";                    
 endif;


 if(
array_search($fecha_menos24hs$fechas_arr) === 0):               
      
$cuaderno utf8_encode(substr($nombre_cuaderno,2,-2));
      
$movimiento_bol "TRUE";        
      
$fecha_mov $fecha_menos24hs;
      
$archivo_mov_causa $attachment;    
      
$debug "La fecha de ayer es el primer elemento del cuaderno: " .$cuaderno"\r\n";    
 endif;


 if(
array_search($fecha_menos48hs$fechas_arr) === 0):
      
$cuaderno utf8_encode(substr($nombre_cuaderno,2,-2));
      
$movimiento_bol "TRUE";        
      
$fecha_mov $fecha_menos48hs;
      
$archivo_mov_causa $attachment;                    
      
$debug "La fecha antes de ayer es el primer elemento del cuaderno: " .$cuaderno"\r\n";    
 endif;


 if(
array_search($fecha_menos72hs$fechas_arr) === 0):
      
$cuaderno utf8_encode(substr($nombre_cuaderno,2,-2));
      
$movimiento_bol "TRUE";        
      
$fecha_mov $fecha_menos72hs;
      
$archivo_mov_causa $attachment;
      
$debug "La fecha hace 3 dias es el primer elemento del cuaderno: " .$cuaderno"\r\n";                        
 endif;


 if(
array_search($fecha_menos96hs$fechas_arr) === 0):
      
$cuaderno utf8_encode(substr($nombre_cuaderno,2,-2));
      
$movimiento_bol "TRUE";        
      
$fecha_mov $fecha_menos96hs;
      
$archivo_mov_causa $attachment;                    
      
$debug "La fecha de hace 4 dias es el primer elemento del cuaderno: " .$cuaderno"\r\n";    
 endif;

  
  
$BYTES_CUADERNO strlen($results);
  
$tot $tot $BYTES_CUADERNO;
  
}


echo 
'TOTAL BYTES MULTITHREAD: ' .$tot"\r\n";


$ret = array('llamada' => $content_cuaderno,
             
'URL_POST' => $cuaderno_data,
             
'mje' => $mje,
             
'total_bytes_cuadernos' => $tot,
             
'cuaderno' =>$cuaderno,
             
'movimiento_bol' => $movimiento_bol,
             
'fecha' => $fecha_mov,
             
'archivo_mov_causa' => $archivo_mov_causa,
             
'debug' => $debug);

echo 
json_encode($ret); 
el tema es que no retorna nada...

alguna sugerencia..

gracias.
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl

Etiquetas: html, mysql, sql
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 12:52.