Проблема в следующем: Мне нужно получить некоторые данные из API. Данные разбиты на страницы. Конечные точки являются чем-то вроде этого:Как я могу получить несколько страниц из API в режиме выполнения?
api.io/getdata/pvt/orders?per_page=100&page=1
Мне нужно, чтобы получить эти данные и иметь его на своем собственном приложении, готов манипулировать.
Мое приложение фактически находится на вершине Ларавеля. Я извлекаю эти данные с помощью «Задания и очереди», и для получения данных требуется слишком много времени.
Как я могу улучшить его производительность?
EDIT
Метод таков:
public function send()
{
Log::info("Starting job FetchOrders:");
$url_feed = "http://genericapi.com/orders?per_page=100";
$first_request = json_decode($this->request($url_feed), true);
$number_pages = $first_request['paging']['pages'];
Log::info("Number of pages been fetched " . $number_pages);
for ($i=1; $i < $number_pages; $i = $i + 10) {
Log::info("Fetching page " . $i);
$orderUrl = $url_feed . "&page=";
$this->dispatch(new FetchOrders($orderUrl, $i));
}
return response($first_request['facets'], 200)
->header('Content-Type', 'text/json');
}
И ручка FetchOrders Иова:
public function handle()
{
$data = ['list' => []];
$request = [];
for ($i=0; $i < 9; $i++) {
$url = $this->url . ($this->page_number + $i);
Log::info("REQUESTING URL:" . $url);
$request = json_decode($this->request($url), true);
$data['list'] = $data['list'] + $request['list'];
}
Log::info(json_encode($data));
}
SO - это ресурс для консультаций по существующим вопросам ms, а не поставщиком решений. Попробуйте решение, предоставите фрагмент кода и сушите свой вопрос. –
Я на самом деле делаю это с помощью заданий и очередей. Это медленно. Настолько медленный. Выведет какой-то код. –