0

Disparando Processos em background

criado por Greg Brown em 31/08/2005 11:17pm
Agora precisamos processar este ZIP antes de processar o arquivo TXT/CSV dentro dele.

OK, vamos deixar este item de lado por enquanto so para analizarmos nosso outro problema, o tempo de insert.

Se vc fizer um insert de centenas de milhares de registros no mySQL, ou em qualquer banco, vc vai ter um pico de processamento enquanto o insert rola. Dependendo da memoria, capacidade de processamento, tempo de acesso em disco, isso pode demorar alguns minutos.
(em portugues mais claro, vc trava seu servidor enquanto o insert estiver rolando)
Isso nunca e bom. Assim, vc precisa descobrir algumas artimanhas para "enganar" o servidor.
Uma delas e o "usleep" do PHP, que basicamente fala pro PHP tirar uma folga para respirar (mesmo q seja por alguns milisegundos)
Colocando um "usleep(10)" entre um insert e outro ajuda manter o processador bem mais calminho.
E claro que nao vamos querer fazer isso para cada insert, mas podemos montar um "insert delayed" com 100 registros ou algo do genero e depois dar uma "dormidinha"
(isso depende muito, como disse antes, do desempenho da sua maquina, faca uns testes, veja o tempo de resposta do servidor e faca umas contas).

OK, entao resolvemos uma parte do segundo problema tambem...
O insert nao trava mais a maquina, porem, ele demora MUITO para rodar.
Isso gera um de dois problemas:
1 - Timeout de Execucao de script do PHP
2 - O usuario fica sentado olhando para a tela ate ela responder (alguns minutos)

Comentários:

Nenhum comentário foi enviado ainda.

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)