Processamento Demorado Com PHP - Programação web - Clube do Hardware
Processamento Demorado Com PHP
Por mthomazs, 12 de dezembro de 2008 em Programação web
mthomazs 0
Tenho que fazer com que minha aplicação web execute o processamento de carga e alguns cálculos, porém, a execução desta rotina é demorada (varia de 1 hora até 6 horas dependendo do volume de dados). Gostaria de saber como poderia executar esse processamento através do PHP, de forma que eu pudesse fazer um acompanhamento da execução (mostrar para o usuário se ainda está executando, se foi concluído). Uso windows 2003 server, apache 2.2, php 5, postgre 8.2.
Atualmente esse processamento é feito através de um sistema em delphi, porém estamos substituindo estes módulos por módulos web, e gostaria de migrar esse módulo tb.
Na minha opiniao e pelo experienncia que tenho com aplicações web eu iria sugerir que você utilizasse Stored Procedures para realizar esse processamento pesado do lado do servidor de banco e o php basicamento só retornaria o resultado final e caso de duvida segue um link de um artigo sobre SP http://www.devmedia.com.br/articles/viewcomp.asp?comp=6550
Em web, quando voce executa alguma instrucao ela sempre e do lado servidor pois o sql e executado no servidor, porém quando voce retorna grandes quantidades de dados havera um atraso gigantesco, então, e melhor nao ficar verificando status por status. stored procedures etc... tem uma coisa interessante sobre isso, se voce pega uma versao nao paga de um banco de dados ele vai armazenar esses procedimentos em forma nao compilada com script a serem interpretados, se voce pegar uma versao paga ele vai compliar o que tornara o codigo mais rápido. mas ainda assim teria que analisar bem, pois 6 horas e muito tempo , imagino que seu banco foi mal projetado. mas tenho q saber o volume da dados e operacoes para poder afirmar,
estou falando somente de forma especulativa.
pode ser q você não esteja usado quebra de página com o comando break; ele quebra a pagina fazendo assim um processamento mais rápido da página, se nao utiliza-lo a pagina vai ficar horas carrengo sem para.