Я запрашиваю API с помощью cURL (GET), и API дает мне только 25 результатов на вызов (это жесткий предел, и я ничего не могу с этим поделать, так как он не мой).
Результаты выглядят так:
<response v="2">
<query>my nifty query</query>
<location>new york, ny</location>
<totalresults>920</totalresults>
<start>1</start>
<end>25</end>
<pageNumber>0</pageNumber>
<results>
<result></result>
<result></result>
...
</results>
</response>
Суммарные результаты (которые отображаются в возвращенном xml [выше]) могут содержать до 1000 результатов, и, как и в большинстве случаев, у меня обычно 1000 результатов на запрос, поэтому мне приходится вызывать API 40 раз ( т.е. 25 результатов на вызов × 40 вызовов = 1000 результатов ). При каждом вызове я изменяю параметр API start и увеличиваю его на 25 (т. Е. 0, 25, 50, ..., 975).
Весь этот процесс занимает около 8 секунд, поскольку в настоящее время я вызываю API синхронно (я использую curl_exec()
для выполнения команды GET, один за другим в цикле for). Есть ли эффективный и более быстрый способ параллельного вызова API и получения этих результатов быстрее? Спасибо.