Domanda

Ho un sito che ha una semplice API che può essere utilizzata tramite http. Desidero utilizzare l'API e inviare i dati circa 1000-1500 volte contemporaneamente. Ecco la loro API: http://api.jum.name/

Ho creato l'URL per effettuare un invio, ma ora mi chiedo quale sia il modo migliore per effettuare queste richieste GET API 1000-1500? Ecco l'implementazione di PHP CURL a cui stavo pensando:

$add = 'http://www.mysite.com/3rdparty/API/api.php?fn=post&username=test&password=tester&url=http://google.com&category=21&title=story a&content=content text&tags=Season,news';
curl_setopt ($ch, CURLOPT_URL, "$add");
curl_setopt ($ch, CURLOPT_POST, 0);
curl_setopt ($ch, CURLOPT_COOKIEFILE, 'files/cookie.txt');
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
$postdata = curl_exec ($ch);

Devo chiudere la connessione CURL ogni volta che invio un invio? Posso riscrivere quanto sopra in un modo migliore che renderà più veloci questi 1000-1500 invii?

Grazie a tutti

È stato utile?

Soluzione

L'arricciatura di PHP, per impostazione predefinita, riutilizza una connessione per più chiamate a curl_exec ().

Quindi, in questo caso, devi solo riutilizzare l'handle di curl, ottenuto da curl_init e se l'URL corrisponde tra le chiamate a curl_exec (), invierà un " Connection: keep-alive " intestazione e riutilizzare la connessione.

Non chiudere la connessione e non impostare CURLOPT_FORBID_REUSE

vedi anche qui:

HTTP persistente / keepalive con la libreria PHP Curl?

Altri suggerimenti

Se hai accesso a php 5.2+ ti consiglio vivamente di curl_multi di php.

Ciò consente di elaborare diverse richieste di arricciatura in parallelo, che in questo caso tornerebbero sicuramente utili.

Documentazione correlata: http://us3.php.net/manual/ it / ref.curl.php
Un esempio di utilizzo: http://www.somacon.com/p537.php

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top