Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal,
Desenvolvi uma classe que importa um arquivo com um certo padrão para um banco MySQL (coisas bem específicas). Porém, estou tendo problema por causa da quantidade de dados que o cliente está tentando importar.
Especificando: Ele upou um arquivo de cerca de 2MB via navegador, ao final do upload a classe abriu o arquivo e começou a inserir os dados no banco (com integridade e tudo mais). O arquivo possuia 17 mil registros, porém apenas 7 mil foram importados.
Acredito eu que o problema está no momento em que o upload termina e o PHP começa a manipular o arquivo. Como o navegador não tem resposta no prazo de 5 minutos, o Apache desiste de terminar a aplicação.
Alguma sugestão?
Pensei em fazer assim: dividir isso em 2 etapas:
Mas acho que o tempo que o navegador vai ficar sem resposta vai ser o mesmo. Enfim, vale a pena apostar nessa ideia? Alguém tem alguma outra sugestão do que posso fazer?
Realmente se o arquivo for muito grande (muitos registros), o tempo de execução de script irá expirar. Mesmo alterando o valor do max_execution_time não vejo como uma boa solução.
O que eu faria no caso, isso se tivesse acesso ao servidor, seria um script em CLI pois este não tem limite de tempo para execução.
Dentro das etapas que mencionou, poderia: