PHP em Background

2,183 views

Published on

Muito se debate sobre a possibilidade do PHP executar threads. Vamos descobrir formas simples de como rodar processos em background com total controle sobre eles.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,183
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
12
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

PHP em Background

  1. 1. PHP em backgroundMuito se debate sobre a possibilidade do PHPexecutar threads. Vamos descobrir formassimples de como rodar processos embackground com total controle sobre eles.
  2. 2. Motivos para usar●Executar processos sem necessidade de interaçãocom usuário.● Compartilha o mesmo espaço de memória. Exemplos de uso:● Processamento de grandes arquivos embackground● Processos que necessitam ficar consumindo umwebservice●Robôs para coleta de dados em sites
  3. 3. PHP – Process Control Extensions● Eio Manual do PHP: extensões para controle de processo● Expect● Libevent● PCNTL● POSIX● Program Execution● pthreads● Shared Memory● Semaphore OBS: para utilizar pthreads é preciso recompilar o php com: --enable-maintainer-zts OBS²: pthreads só funcionam no PHP >= 5.3
  4. 4. IPC - Inter-Process Communication comunicação entre os processos Possibilidade de troca de informações entre processos de maneira assíncrona. Algumas formas de implementação de IPC:● Arquivos em disco● Banco de dados● Memória compartilhada● Socket / SOAP
  5. 5. Comunicação entre processos Semaphore ● Acesso a área de partilha de dadospor outras linguagens/programas (como Perl, C, …) ● Variáveis globais de Manual do PHP: Semaphore troca de dados.Conselho: Não use drogas, aposente a Janela seja livre! Evite dores de cabeça.
  6. 6. Como fazer?
  7. 7. LEIA O MANUAL!!!! http://www.php.net
  8. 8. Processo em background● Linux php process.php &● Windows start /b “php process.php” OBS: coloque no crontab ou no agendador de tarefas um script para verificar, de x em x minutos, se o processo está em execução (veremos um exemplo)
  9. 9. Iniciando processo pelo PHP Manual do PHP: execução de programas● Apenas executa o script process.php se ele já não estiver em execução● Coloca o script process.php em background
  10. 10. Processo eterno3 formas diferentes:Dica: coloque um sleep() ou umusleep() para evitar sobrecargado processador
  11. 11. Mão na massa GIT - exemploAgora vamos ver oscódigos em execução!
  12. 12. Links - Contato<?phpecho "Vitor Mattoshttp://www.slideshare.net/vitormattoshttps://github.com/vitormattosrjvitor.mattos@phprio.org";?> FIME viveram felizes para sempre!

×