FAQ
hola lista!!!

tengo una duda con el tema de php y webservices, les cuento

un archivo.php ejecuta una serie de operaciones, llama a un webservice y
dependiendo de la respuesta, ejecuta una u otra opcion ......... hasta aqui
funciona todo bien
la duda surge por lo siguiente: cuanto tiempo tarda el webservices en
responder???? suponiendo que tarde 1 segundo, el script php se seguira
ejecutando y tomara un camino equivocado ..... supongo que ese es el
funcionamiento logico
la pregunta seria: cual seria la opcion correcta para que el script se
"duerma" hasta recibir la contestacion del webservice???
colocando un sleep??? -cuanto tiempo le pongo??? -
haciendo un while y preguntando si ya respondio???? -puedo tener un bucle
infinito-
cual seria la mejor opcion, la correcta????

muchas gracias por su ayuda!!!!
salu2

Search Discussions

  • Julio Araya at Aug 7, 2008 at 12:54 pm

    2008/8/7 Roberto Barreiro <rpbarreiro@gmail.com>:
    hola lista!!!

    tengo una duda con el tema de php y webservices, les cuento

    un archivo.php ejecuta una serie de operaciones, llama a un webservice y
    dependiendo de la respuesta, ejecuta una u otra opcion ......... hasta aqui
    funciona todo bien
    la duda surge por lo siguiente: cuanto tiempo tarda el webservices en
    responder???? suponiendo que tarde 1 segundo, el script php se seguira
    ejecutando y tomara un camino equivocado ..... supongo que ese es el
    funcionamiento logico
    Segun tengo entendido una llamada mediante SOAP se hace de manera
    sincrona, por lo que tu script no continuará ejecutándose hasta haber
    recibido la respuesta del webservice o hasta haber recibido un
    SoapFault.
    la pregunta seria: cual seria la opcion correcta para que el script se
    "duerma" hasta recibir la contestacion del webservice???
    colocando un sleep??? -cuanto tiempo le pongo??? -
    haciendo un while y preguntando si ya respondio???? -puedo tener un bucle
    infinito-
    cual seria la mejor opcion, la correcta????

    muchas gracias por su ayuda!!!!
    salu2


    --
    Julio Araya C. Linux User #386141
    Estudiante de Ingeniería Civil Informática Ubuntu User #14778
    Universidad Técnica Federico Santa María Valparaíso - Chile
    http://www.delpho.cl
  • Martin Scotta at Aug 7, 2008 at 3:14 pm
    Hola

    Hay 2 maneras bien diferenciables de entender la situacion.

    Situacion A: Sincronica
    La palabra "sincronia" nos indica que ambos se ponen de acuerdo para
    realizar la tarea.
    si tenemos 2 scripts, A y B respectivamente y, el A llama a una operacion en
    B, A debera esperar q B termine su tarea para poder continuar.
    Supongamos un ejemplo muy simple[ y tonto]:

    <?php # A.php
    echo file_get_contents('http://www.example.org/B.php');
    ?>

    <?php # B.php
    for($i=0; $i<1000; $i++)
    {
    echo $i, '<br />';
    }
    ?>

    Situacion B: Asincronica
    Nuevamente tenemos 2 scripts, A y B, pero en este caso A llama de manera
    asincronica a B, es decir, envia el pedido y luego prosigue con la
    ejecucion, por ende tendra q consultar cada "x" tiempo si el script B
    completo la ejecucion del mismo.
    Escribir un ejemplo 100% en php no es tan trivial, dado q tendriamos q
    meternos con sockets o con curl, pero podemos pensar un objeto CURL que
    internamente nos de soporte para lo q necesitamos

    <?php # A.php
    function cargo($text)
    {
    exit ( $text );
    }

    $c = new CURL(); # el supuesto curl
    $c->callback = 'cargo'; # function de retorno para cuando termine la
    ejecucion de B.php
    $c->GET( 'B.php' ); # hago la llamada

    for(;;)
    {
    # continuo ejecutando lo q necesito
    }
    ?>

    <?php # B.php
    for($i=0; $i<1000; $i++)
    {
    echo $i, '<br />';
    }
    ?>


    Por mi experiencia personal php se adapta para el 1er de los casos, sobre
    todo en plataformas web, quizas el 2do cosa se da mas en scripts cli.
    En contraposicion en javascript lo mas usual es utilizar el metodo
    asincronico, dado q da libertades al browser de realizar "efectos" visuales
    al usuario de que algo esta pasando.

    Espero te sirva
    Mrtn


    2008/8/7 Roberto Barreiro <rpbarreiro@gmail.com>
    hola lista!!!

    tengo una duda con el tema de php y webservices, les cuento

    un archivo.php ejecuta una serie de operaciones, llama a un webservice y
    dependiendo de la respuesta, ejecuta una u otra opcion ......... hasta aqui
    funciona todo bien
    la duda surge por lo siguiente: cuanto tiempo tarda el webservices en
    responder???? suponiendo que tarde 1 segundo, el script php se seguira
    ejecutando y tomara un camino equivocado ..... supongo que ese es el
    funcionamiento logico
    la pregunta seria: cual seria la opcion correcta para que el script se
    "duerma" hasta recibir la contestacion del webservice???
    colocando un sleep??? -cuanto tiempo le pongo??? -
    haciendo un while y preguntando si ya respondio???? -puedo tener un bucle
    infinito-
    cual seria la mejor opcion, la correcta????

    muchas gracias por su ayuda!!!!
    salu2


    --
    Martin Scotta
    http://www.echess.com.ar/

    Decile NO al soft-pirata, usa Linux!
  • Carlos Medina at Aug 8, 2008 at 9:02 am
    Hola Roberto,
    si usas nuSOAP u otra biblioteca de la PEAR puedes mandar siempre un
    Timeout.

    Mira en estos ressource que he encotrado por alli

    http://developer.apple.com/internet/webservices/soapphp.html
    http://devzone.zend.com/node/view/id/689
    http://pear.php.net/package/SOAP
    http://dietrich.ganx4.com/nusoap/index.php
    http://wso2.org/library/1060

    Espero te sirva.

    Saludos
    Carlos

    Roberto Barreiro schrieb:
    hola lista!!!

    tengo una duda con el tema de php y webservices, les cuento

    un archivo.php ejecuta una serie de operaciones, llama a un webservice y
    dependiendo de la respuesta, ejecuta una u otra opcion ......... hasta aqui
    funciona todo bien
    la duda surge por lo siguiente: cuanto tiempo tarda el webservices en
    responder???? suponiendo que tarde 1 segundo, el script php se seguira
    ejecutando y tomara un camino equivocado ..... supongo que ese es el
    funcionamiento logico
    la pregunta seria: cual seria la opcion correcta para que el script se
    "duerma" hasta recibir la contestacion del webservice???
    colocando un sleep??? -cuanto tiempo le pongo??? -
    haciendo un while y preguntando si ya respondio???? -puedo tener un bucle
    infinito-
    cual seria la mejor opcion, la correcta????

    muchas gracias por su ayuda!!!!
    salu2
  • EduT at Aug 12, 2008 at 7:52 am
    También puedes usar CRON para ejecutar el script php cada X tiempo y guardar
    el estado del mismo en una base de datos o fichero de texto, de este modo,
    si el escript se Re-ejecuta, podrá saber si ya obtuvo respuesta o no y hacer
    lo que proceda.

    ""Roberto Barreiro"" <rpbarreiro@gmail.com> escribió en el mensaje
    news:d3611cf0808070544w519004bci594f8fb01f623499@mail.gmail.com...
    hola lista!!!

    tengo una duda con el tema de php y webservices, les cuento

    un archivo.php ejecuta una serie de operaciones, llama a un webservice y
    dependiendo de la respuesta, ejecuta una u otra opcion ......... hasta
    aqui
    funciona todo bien
    la duda surge por lo siguiente: cuanto tiempo tarda el webservices en
    responder???? suponiendo que tarde 1 segundo, el script php se seguira
    ejecutando y tomara un camino equivocado ..... supongo que ese es el
    funcionamiento logico
    la pregunta seria: cual seria la opcion correcta para que el script se
    "duerma" hasta recibir la contestacion del webservice???
    colocando un sleep??? -cuanto tiempo le pongo??? -
    haciendo un while y preguntando si ya respondio???? -puedo tener un bucle
    infinito-
    cual seria la mejor opcion, la correcta????

    muchas gracias por su ayuda!!!!
    salu2
  • Gerardo Benitez at Aug 12, 2008 at 2:03 pm
    Hola EduT, eso es algo poco, muy poco, pŕactico, los mecanismos para
    consumir un webservice por lo general funcionan de manera asincrona, y
    tienen algún método para setear un time out, o lo ya lo tienen seteado por
    default.

    [Gerardo Benitez]


    On Tue, Aug 12, 2008 at 4:50 AM, EduT wrote:

    También puedes usar CRON para ejecutar el script php cada X tiempo y
    guardar
    el estado del mismo en una base de datos o fichero de texto, de este modo,
    si el escript se Re-ejecuta, podrá saber si ya obtuvo respuesta o no y
    hacer
    lo que proceda.

    ""Roberto Barreiro"" <rpbarreiro@gmail.com> escribió en el mensaje
    news:d3611cf0808070544w519004bci594f8fb01f623499@mail.gmail.com...
    hola lista!!!

    tengo una duda con el tema de php y webservices, les cuento

    un archivo.php ejecuta una serie de operaciones, llama a un webservice y
    dependiendo de la respuesta, ejecuta una u otra opcion ......... hasta
    aqui
    funciona todo bien
    la duda surge por lo siguiente: cuanto tiempo tarda el webservices en
    responder???? suponiendo que tarde 1 segundo, el script php se seguira
    ejecutando y tomara un camino equivocado ..... supongo que ese es el
    funcionamiento logico
    la pregunta seria: cual seria la opcion correcta para que el script se
    "duerma" hasta recibir la contestacion del webservice???
    colocando un sleep??? -cuanto tiempo le pongo??? -
    haciendo un while y preguntando si ya respondio???? -puedo tener un bucle
    infinito-
    cual seria la mejor opcion, la correcta????

    muchas gracias por su ayuda!!!!
    salu2


    --
    PHP Spanish Localization Talk Mailing List (http://www.php.net/)
    To unsubscribe, visit: http://www.php.net/unsub.php

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedAug 7, '08 at 12:44p
activeAug 12, '08 at 2:03p
posts6
users6
websitephp.net

People

Translate

site design / logo © 2022 Grokbase