[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Paulo Vianna
Criador Paulo Vianna 23/11/2018

Fiz uma aplicação usando laravel. Nessa aplicação existe uma pesquisa que retorna grande número de dados. Com número de dados menor funciona perfeitamente.

Fato que quando necessito retornar grande número de dados (tipo 10 mil registros) a aplicação parece que não aguenta e me retorna erro 500
muito semelhante aquelas hospedagens compartilhadas quando estoura memória

A aplicação está hospedada na Digital Ocean. Localmente tenho o mesmo problema.

Já tentei de tudo entrei nas configurações do root linux php.ini / my.cnf e nada... ja fiz e refiz a instalação e conferi todos as minhas querys

Penso que exista alguma coisa que um iniciante em laravel não está conseguindo enxergar. alguma coisa estou fazendo de errado e é basico.

Sou desenvolvedor em ASP.net e na microsoft existe certos parametros. Poderia me orientar por onde procurar pois estou muito perdido

e já fiz mil e uma coisas, ajustes avançados e não obtive resultado. Aumentei o nível de serviço para teste se era um servidor fraco mais não está nem em 11% da capacidade contratada;

agradeço se puder me salvar novamente

 

Criador Paulo Vianna 23/11/2018

No C#.NET quando fazemos uma query declaramos uma variavel datareader e colocamos ela dentro de um while

para que não saia enaquanto não estiver carregado totalmente. o que ocorre aqui é que ela passa e retorna antes de carregar todas as informações

public function PesquisaDoUsuario($Busca,$Filtro)
{
$pesquisado=$Busca;
$usuarioFiltro=$Filtro;
//Caso usuario não tenha informado nenhum valor : pesquisa/filtro
if($usuarioFiltro == "0" && $pesquisado == 'todos' ){
 
 
 
//busca todos os registros daquela empresa de acordo com a pesquisa
$sessaoEmpresa=session()->get('sessaoEmpresa');

 
$query=DB::select("SELECT estoques.id,estoques.dataEnt,estoques.ovTimcode,estoques.notaFiscal,fornecedores.nome,estoques.etiquetaID,tipo_materiais.tipoMaterial,estoques.qtdVolume,
estoques.pallet,estoques.conservacao,estoques.obs,estoques.identificacao,estoques.valorNf,estoques.descEtiqueta,estoques.status,estoques.descritivo,estoques.qtdMaterial,
estoques.numRec,estoques.endereco,estoques.tm,estoques.numSerie,estoques.numPo,estoques.partNumber
FROM estoques,fornecedores,tipo_materiais
where estoques.fornecedores_id=fornecedores.id
and estoques.materiais_id=tipo_materiais.id and estoques.empresa_id='$sessaoEmpresa' and estoques.status <> 'EXPEDIDO' ORDER BY id ASC");
 
 
//vamos aqui formatar todo o array para mostrar ao usuário
//inverte as dadas
$queryFormat=$this->inverteDatasDoArray($query);
 
 
 
 
// EXATAMENTE AQUI TENHO QUE COLOCAR UM WHILE OU FOREACH MAIS NÃO CONSIGO RESOLVER.
 
 
return $query;
 
}
 
Paulo Vianna
Manager Carlos Ferreira 23/11/2018

Olá Paulo!
Tudo bem?

O Laravel é um framework próprio para suporte justamente grandes projetos, ele atende super bem porque possui recursos de ponta para aguentar bem a demanda.

Existem N estratégias que pode usar para resolver casos assim, desde trabalhar com cache até aumentar a memória no servidor.

O problema pode estar mais vinculado ao servidor, e não a aplicação, normalmente mais memória resolve o caso.

Mas, ao ajustar a memória (o que é importante), você está apagando o incêndio e não resolvendo o problema.
Realmente precisa carregar esse volume gigantesco de dados?
Porque se tiver carregando informações de forma desnecessária recomendo que revise, e filtre, para carregar aquilo que realmente é útil no momento, porque assim evita o gargalo temporário de processamento no servidor.

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!