Domanda

Con Twitter inattivo oggi stavo pensando a come gestire al meglio le chiamate a un'API quando è inattivo. Se sto usando CURL per chiamare il loro API come posso fare in modo che lo script fallisca rapidamente e gestisca gli errori per non rallentare l'applicazione?

È stato utile?

Soluzione

Forse usa una sorta di cache per sapere se Twitter è attivo o meno. Registra le risposte non valide dall'API in un database o in un file sul lato server. Una volta ottenute due / tre / qualche altra quantità di risposte non valide di seguito, disabilita tutte le richieste all'API per x quantità di tempo.

Dopo x tempo, prova una richiesta, se è ancora inattiva, disabilita nuovamente per x minuti.

Se il tuo server è in grado di eseguire lavori CRON, considera di creare uno script che controlli l'API per una risposta valida ogni pochi minuti. Se scopre che è inattivo, disabilitare le richieste fino a quando non viene eseguito il backup. Almeno in questo caso il server eseguirà i test e gli utenti non dovranno essere le cavie.

Altri suggerimenti

Usa curl_setopt

curl_setopt($yourCurlHandle, CURLOPT_CONNECTTIMEOUT, '1'); // 1 second

Se usi curl > = 7.16.2 e PHP > = 5.2.3 c'è CURLOPT_CONNECTTIMEOUT_MS

Usa curl_getinfo per ottenere il codice di risposta cURL o lunghezza dei contenuti e verifica con quelli.

$HttpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top