Execução de processos em segundo plano
Criar processos em segundo plano, não é uma tarefa difícil de se executar em PHP, são necessárias apenas duas chamadas a funções, são elas:
set_time_limit - Define quanto tempo um script pode executar antes de ser encerrado.
ignore_user_abort - Define o comportamento do script quando o usuário finalizar a conexão.
A configuração do processo é definir um tempo limite alto para o script (o tempo limite que poderá durar a interação com o usuário) e ignorar a finalização da conexão por parte do cliente.
Ex.:
Para dar início ao processo, é necessário usar uma chamada assíncrona na página principal, para isso usa-se AJAX:
Ex.:
Feito isso teremos nosso processo rodando em segundo plano!
set_time_limit - Define quanto tempo um script pode executar antes de ser encerrado.
ignore_user_abort - Define o comportamento do script quando o usuário finalizar a conexão.
A configuração do processo é definir um tempo limite alto para o script (o tempo limite que poderá durar a interação com o usuário) e ignorar a finalização da conexão por parte do cliente.
Ex.:
<?php
set_time_limit(7200) // duas horas
ignore_user_abort(true) // continua rodando após a finalização
// processo...
?>
Para dar início ao processo, é necessário usar uma chamada assíncrona na página principal, para isso usa-se AJAX:
Ex.:
<html>
<head>
<script type="application/x-javascript">
<!--
xhttp = new XMLHttpRequest();
xhttp.open("GET","processo.php",true);
xhttp.send(null);
xhttp.abort();
//-->
</script>
</head>
<body>
<!-- conteudo -->
</body>
</html>
Feito isso teremos nosso processo rodando em segundo plano!
Muito bom o artigo, irei colocar em prática e passo o que tive de experiência
11/07/2009 6:22pm
(~15 anos atrás)
Não sabia que tinha como executar em segundo plano em PHP, funciona simulando um pequeno ambiente Thread.