Есть бэкенд для мобильных приложений на Laravel к которому поступает запрос на обновление данных в json формате
'data': [
{'table': 'Product', 'updated_at': <timestamp>}
],
В бэкенде выбираются все данные из переданной в запросе таблицы, которые свежее указанного там же updated_at таймстемпа и возвращаются jsonом
public function handle()
{
$requestData = request('data');
$responseData = [];
foreach ($requestData as $item) {
$model = "\\App\\" . $item['table'];
$updated = $item['updated_at'];
$collection = $model::where('updated_at', '>', $updated)->get();
if ($collection->count()) {
$maxUpdatedAt = $collection->pluck('updated_at')->max();
$responseData[] = [
'updated_at' => $maxUpdatedAt,
'table' => $item['table'],
'data' => $collection->toArray()
];
}
}
$response = ['action' => 'update', 'data' => $responseData];
return response()->json($response);
}
Возникает вопрос - что делать при огромном количестве запросов? Кеширование в данном случае видимо не подходит. Какие решения подходят для подобных задач? Читал про Broadcasting, но это несколько другой подход и можно ли его использовать в данном случае?