+1

Execução de processos em segundo plano

criado por Bruno Kühnen Meneguello em 17/03/2007 11:44am
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.:

<?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!

Comentários:

Mostrando 1 - 2 de 2 comentários
Marcelo disse:
Muito bom!!!

Não sabia que tinha como executar em segundo plano em PHP, funciona simulando um pequeno ambiente Thread.
12/07/2009 12:05am (~7 anos atrás)

Muito bom o artigo, irei colocar em prática e passo o que tive de experiência
11/07/2009 6:22pm (~7 anos atrás)

Novo Comentário:

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