Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    17

    Fermare l'esecuzione di una funzione e proseguire senza generare un errore

    Ciao a tutti,

    Ho uno scipt che interroga un webservice esterno, questo ws risponde talvolta in meno di 10 secondi mentre altre volte in più di 60 secondi: vorrei fermare l'esecuzione della funzione che apre il webservice senza generare un errore (come farei con set_time_limit , se ben capisco).

    Questo codice non funziona come sperato (mutuato dal C):

    Codice PHP:

    //### fermiamo l'esecuzione dopo tot secondi
    $started time();
    while ((
    time() - $started ) < 10) {
        
    interrogaWebService();

    La via maestra sarebbe mettere un timeout al ws ma sembra non funzionare (uso Zend_Http_Client con opzione 'timeout'=>10, vedi http://files.zend.com/help/Zend-Fram...zend.http.html )

    Spero in una dritta, grazie!

  2. #2
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ciao,
    il problema è che con il codice scritto a quel modo fai un numero enorme di richieste al webservice, questo non ha il nemmeno il tempo di risponderti.

    Prova la funzione che ho postato qui

    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    17
    Grazie Razorblade della dritta, ho scritto una sciocchezza di codice, evidentemente, rimarrà per i posteri, che vergona.

    L'esempio che tu fai è buono ma controlla il numero di tentaivi per richiesta, non la durata.

    A parte lavorare sul timeout del socket, esiste un costrutto che permette di controllare, interrompendo, la durata di una funzione e non dell'intero script?

    Grazie ancora a chi si volesse cimentare

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.