Foros del Web » Programando para Internet » PHP »

hilos concurrencia cortar ejecucion

Estas en el tema de hilos concurrencia cortar ejecucion en el foro de PHP en Foros del Web. Gente tengo una pagina php que llama a un metodo de un web service el tema es que no necesito esperar la respuesta por ende ...
  #1 (permalink)  
Antiguo 10/08/2010, 14:41
 
Fecha de Ingreso: agosto-2008
Mensajes: 13
Antigüedad: 15 años, 8 meses
Puntos: 0
hilos concurrencia cortar ejecucion

Gente tengo una pagina php que llama a un metodo de un web service el tema es que no necesito esperar la respuesta por ende quiero que tire la llamada y que siga la ejecucion sin esperar el xml de retorno

Alguien sabe como puedo cortar la ejecucion a los x segundos
o un timeout o alguna programacion concurreewnte para esto

ejemplo de llamada al web service uso

// Llamada al método especifico pasando el array con los respectivos parametros.
$result = $client->privateMethod($param);

Gracias
  #2 (permalink)  
Antiguo 10/08/2010, 15:08
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: hilos concurrencia cortar ejecucion

Y si lo haces con una llamada asincronica con javascript ?? (Ajax)

Saludos!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 11/08/2010, 09:46
 
Fecha de Ingreso: agosto-2008
Mensajes: 13
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: hilos concurrencia cortar ejecucion

Tenes algun ejemplo de como hacer eso. Te pregunto porque no manejo mucho php ni java script.

Desde ya gracias por el dato
  #4 (permalink)  
Antiguo 11/08/2010, 10:14
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: hilos concurrencia cortar ejecucion

Con esta pagina haces la llamada asincronica a otra pagina una vez que se cargue el body, esto quiere decir que primero cargas la pagina y despues cargas la llamada.
Código PHP:
<html>
    <
head>
        <
script type="text/javascript" language="Javascript">
            
//Funcion para llamada asincronica
            
function crearAjax(){
                var 
xmlhttp false;
                try{
                    
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
                }catch (
e){
                    try{
                        
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                    }catch (
E){
                        
xmlhttp false;
                    }
                }
            
                if (!
xmlhttp && typeof XMLHttpRequest != 'undefined'){
                    
xmlhttp = new XMLHttpRequest();
                }
                return 
xmlhttp;
            }
            function 
getResponse(){
                var 
url "pagina_dos.php";
                
http.open("GET"urltrue);
                
http.onreadystatechange = function(){
                    if (
http.readyState == 1){
                        
window.status "Cargando respuesta...";
                    }
                    if (
http.readyState == 4){
                        
window.status "Respuesta obtenida";
                        var 
json = eval('(' http.responseText ')');
                        if(
json){
                            
alert("La respuesta es verdadera");
                        }else{
                            
alert("La respuesta es falsa");
                        }
                    }
                }
                
http.send(null);
            }
        
</script>
    </head>
    <body onload="getResponse()">
    </body>
</html> 
En esta otra pagina (pagina_dos.php) tengo un echo json_encode(true), lo que interesa de esto es que:
1.- El json_encode() es solo para decodificar el texto y que lo pueda leer el javascript, asi que si o si debe ir y no es un problema.
2.- lo que vaya en su interior (en este caso true) puede ser lo que tu quieras.

Código PHP:
<?php
echo json_encode(true);
?>
Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #5 (permalink)  
Antiguo 11/08/2010, 14:58
 
Fecha de Ingreso: agosto-2008
Mensajes: 13
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: hilos concurrencia cortar ejecucion

Marvin

Me esta tirando un error en la linea 23 http is undeffined tienes idea que puede ser ?

Desde ya gracias totales
  #6 (permalink)  
Antiguo 11/08/2010, 15:08
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: hilos concurrencia cortar ejecucion

Sip... me falto algo... despues de var url anota esto:
Código:
var http = crearAjax();
Saludos!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #7 (permalink)  
Antiguo 11/08/2010, 15:25
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: hilos concurrencia cortar ejecucion

Bueno, pero Ajax solo funcionará mientras el web service este dentro del dominio, si es un dominio externo no funcionará
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #8 (permalink)  
Antiguo 12/08/2010, 09:58
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: hilos concurrencia cortar ejecucion

Pero si puede accederla de esta manera:
Código PHP:
$result $client->privateMethod($param); 
Da un poco lo mismo que la llamada sea para afuera o interna... el tema es que esa linea se llama desde otro archivo el cual va a ser asincronico. En terminos generales, la llamada va a ser utilizada como siempre, pero la pagina web que la llamaba no va a necesitar esperar que el webservice responda para cargarse completamente.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!

Etiquetas: cortar, ejecucion, hilos
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 01:34.