criando processos em segundo plano em php para processos de execução longa

Ok, então me perdoe se isso é uma repetição de outra pergunta, mas depois de pesquisar eu não encontrei uma resposta clara. Basicamente, o que eu quero fazer é que meu aplicativo web php inicie algum evento (como um emailer ou gerador de relatórios) que pode levar alguns minutos para ser concluído e retornar imediatamente o controle à página. Eu venho de um mundo .NET onde isso pode ser facilmente realizado com um thread.

Então, aqui está o fluxo de trabalho:

O usuário clica no botão 'gerar relatório'chamada ajax feita para '../blah/generate-report' e retorna imediatamenteprocesso é iniciado e é executado até a conclusão, enquanto o usuário pode executar seus negóciosO usuário pode retornar à página do relatório e ver o progresso: "Relatório 50% concluído"

Qual é a melhor maneira de conseguir isso? Respostas breves são boas. Não quero código escrito para mim, apenas algumas orientações. Eu olhei para shell_exec, mas não tenho certeza exatamente se essa é a melhor maneira ou se é, como usá-lo para processar funções dentro de um aplicativo da web. (Estou usando a estrutura Yii, se isso faz alguma diferença). Obrigado.

-Jason

questionAnswers(4)

yourAnswerToTheQuestion