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.