Executar página (processo) em background

423 views
Skip to first unread message

Félix

unread,
Sep 20, 2007, 9:39:01 AM9/20/07
to LISTA PHP, php-b...@googlegroups.com, ph...@googlegroups.com, phpav...@googlegroups.com
Olá pessoal,

Estou desenvolvendo um sistema de newsletter, quando o usuário cria
uma nova newsletter tem a opção de enviar as mensagens "agora", que na
verdade envia após 5 mim. da data/hora de criação para dar tempo para
ele editar ou cancelar a newsletter.

Quando gravo esse novo registro da newsletter no banco de dados já
executo a "rotina" via shell_exec, utilizando o & (e-comercial) no
final da linha de comando para que o processo seja executado em
background, para que o php não espere uma resposta do shell para
continuar o script, pois na rotina utilizo um sleep(300); para
aguardar os 5 mim., veja a linha de comando:

shell_exec("php [ARQUIVO DA ROTINA] [PARÂMETRO DA NEWSLETTER ID] &");


Meu problema é que o php fica aguardando a resposta do shell_exec()
para continuar o script, sendo que como disse utilizo o & no final do
comando para que o processo seja executado em background.

Estou fazendo o correto? Existe ou método para realizar isso?

Att.
Félix

Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted

Félix

unread,
Sep 21, 2007, 7:41:33 AM9/21/07
to PHP Avançado
Resolvido.... =D

Diego Tolentino

unread,
Sep 20, 2007, 4:05:30 PM9/20/07
to phpav...@googlegroups.com
Por que voce não guarda a newsletter no banco e usa o crom para
agendar a tarefa?


--
Diego Tolentino
+55 (62) 8406-5051

Douglas Brito de Medeiros

unread,
Sep 21, 2007, 1:26:09 PM9/21/07
to phpav...@googlegroups.com
Felix.. poderia postar para todos qual foi a solução que você encontrou?

--
Douglas Brito de Medeiros

Code Networks
http://www.codenetworks.com.br
http://www.ativoaccess.com.br/

gTalk: douglas.web

Félix

unread,
Sep 21, 2007, 1:47:45 PM9/21/07
to PHP Avançado
OK... segue a linha que executei para rodar a rotina:

shel_exec("nohup php [NOME DO ARQUIVO DA ROTINA, com caminho completo]
[PARAMETRO, neste caso o ID da newsletter] > [NOME DO ARQUIVO QUE SERÁ
GRAVADA A SAIDA DO COMANDO, com caminho completo] &");

EXEMPLO DO SCRIPT:

shell_exec("nohup php ".$cfg[dir][base]."admin/
newsletterNew_rotina.php
".$this->getField('news_id')." >
".$cfg[dir][base]."admin/newsletterNew_log.txt &");

[]s

Félix

On 21 set, 14:26, "Douglas Brito de Medeiros" <douglas....@gmail.com>
wrote:

Reply all
Reply to author
Forward
0 new messages