Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    174

    Throw/Catch eccezioni con Amazon WS

    Buongiorno a tutti!
    Sto realizzando un progetto in Laravel 5 che integra le librerie AWS (Amazon).
    Di tanto in tanto mi capita che il sistema mi va in timeout scatenandomi quanto segue

    codice:
    [2015-06-29 10:06:44] local.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Maximum execution time of 30 seconds exceeded' in C:\xampp\htdocs\wishoppe\app\Libraries\Amazon\AmazonECS.php:248
    Stack trace:
    #0 {main}

    ecco invece il metodo in cui l'eccezione viene lanciata

    codice:
        protected function performSoapRequest($function, $params)
        {
            if (true === $this->requestConfig['requestDelay']) {
                sleep(1);
            }
            
            $soapClient = new SoapClient($this->webserviceWsdl, array(
                'exceptions' => 1
            ));
            
            $soapClient->__setLocation(str_replace('%%COUNTRY%%', $this->responseConfig['country'], $this->webserviceEndpoint));
            
            $soapClient->__setSoapHeaders($this->buildSoapHeader($function));
            
            return $soapClient->__soapCall($function, array($params));
        }

    Per la legge di Murphy, o chissà quale altra legge universale, quando eseguo il debugging per eseguire il catch e trattare l'eccezione a dovere, l'interazione col WS va alla grande.

    Cosa mi consigliate affinché possa far sollevare sempre l'eccezione?
    Ho provato la strada più brutale e cioè la disconnessione dalla rete ma, ovviamente, tutto il sistema poi non funziona più.

    Grazie infinite anticipatamente!

  2. #2
    Potresti simulare il timeout con sleep()

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    174
    Ciao lucavizzi,
    grazie per la tua risposta e scusa per il ritardo della mia.

    Beh, si la soluzione che mi suggerisci è validissima, ahimè, inserendo la chiamata alla funzione in un blocco try-catch il framework mi dava comunque picche. Leggendo la documentazione, quell'eccezione viene gestita nel core e a livello di controller posso far ben poco.
    Un'alternativa sarebbe aumentare l'intervallo di tempo prima che vada in timeout agendo sulla configurazione del php.

    Grazie e alla prossima

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.