Execução de uma fila de comandos em php

97 views
Skip to first unread message

rickmachado

unread,
Oct 29, 2008, 9:16:17 AM10/29/08
to PHPBR
Ola a todos.

Estou com a seguinte necessidade em php.

Tenho que desenvolver uma espécie de fila de api. ( ou fila de
comando).
Até ai tudo bem, gravo todos os comando na tabela. e já tenho
desenvolvido uma função (executada pelo usuario) para executar todos
os pendentes.

Mas agora preciso automatizar isso.
Por exemplo a ideia seria criar uma thread ( ou algo parecido) que
ficasse sempre lendo para ver se tem um comando para executar. e se
tiver chama essa função já pronta.

Essa thread tem mais um detalhe. se um comando falhar (sei pelo
retorno da função, esse não é o problema) tenho que parar essa thread
e recomeçar apenas se o usuário desejar.
Ou seja, se um comando da fila da erro. o resto não executa.

Alguem tem alguma ideia de como fazer isso em php. (que funcione para
windows e linux).

Alexandre Silveira

unread,
Oct 29, 2008, 10:33:01 AM10/29/08
to lista...@googlegroups.com
Que tipos de comandos seriam esses ?

2008/10/29 rickmachado <h.rick...@gmail.com>



--
_________________________________
Alexandre Silveira Neto
Técnico em Sistemas de Informação
Tecnólogo em Análise e Desenvolvimento de Sistemas
E-Mail/MSN: alex...@ftlan.com

Edgar da Silva (Fly2k)

unread,
Oct 29, 2008, 9:59:33 AM10/29/08
to lista...@googlegroups.com
Um serviço agendado no cron? Onde você lê uma fila de threads e
executa cada thread, que por sua vez leva a uma fila de comandos?
Alguma dificuldade?

2008/10/29 rickmachado <h.rick...@gmail.com>:

--
Abraços
Edgar Ferreira da Silva

-----
Aprenda PHP, cole códigos, saiba das vagas de empregos:
http://www.manjaphp.com.br

Rodrigo Gobbi

unread,
Oct 29, 2008, 11:27:05 AM10/29/08
to lista...@googlegroups.com
Rick,

Por mais que PHP seja linguagem multi-plataforma, há formas diferentes de executar este script... ex

no linux há o Cron que tens funções semelhante ao agendador de tarefas do windows... onde irá definir de quanto em quanto tempo será executado teu script seja min, horas, dias, dias da semana...

precisaria saber ao certo quais seriam esta fila de processo pois se for algo relacionado ao sistema terá forma diferente de programar (para win ou linux)...

Se possível explica melhor aí para que possamos lhe auxiliar...


2008/10/29 rickmachado <h.rick...@gmail.com>

Henrique Machado Müller

unread,
Oct 29, 2008, 1:07:44 PM10/29/08
to lista...@googlegroups.com
Vou tentar explicar melhor. vamos lá;

Preciso executar uma função php (de um objeto).
Essa função le de uma tabela de banco de dados os registro.
Que por sua ver tem o IP do servidor e um comando Whm (que é uma url). A parte de executar esse comando e verificar o retorno já esta feita.

Se o comando for bem sucedido.
Deve ser agendado uma nova execução dessa função php. (isso que não sei como).
Senão. Uma nova execução só manualmente.

Ou seja se for bem sucedido daqui um minuto vai ler de novo dessa tabela e executar algum comando pendente, se existir.

Bom, espero ter esclarecido. qualquer coisa só pergunta.

2008/10/29 Rodrigo Gobbi <gobbi....@gmail.com>

Daniel Borba Caña

unread,
Oct 29, 2008, 2:22:09 PM10/29/08
to lista...@googlegroups.com
Buenas!

Henrique, esse script vai ficar rodando direto? 24h?

Se sim, podes fazer algo simples, como promover a execução do script no carregamento de uma página e setar um tempo de espera com o comando sleep( ) após a execução das linhas de comando que te interessam e, depois dessa espera, recarregar a página - por header("Location:$SELF") se não houver saídas ou pelo print de um javascript (location.href=$SELF;). Para interromper, basta fazer uma verificação antes ou após o sleep( ) e tomar as ações necessárias.

Se não é o caso, peço que expliques melhor... hehehe...

Abraços,

Daniel

2008/10/29 Henrique Machado Müller <h.rick...@gmail.com>

Edgar da Silva (Fly2k)

unread,
Oct 30, 2008, 9:45:24 AM10/30/08
to lista...@googlegroups.com
Porque não colocar um flag no banco, arquivo, sei lah, simplesmente
dizendo pra ele: executar (sim/não).

Enquanto o retorno está ok... o campo está sim...uma vez q vc naum
quer a proxima execução sete não...

toda vez q ele for executar...ele checa no banco....

2008/10/29 Henrique Machado Müller <h.rick...@gmail.com>:

--

Fabio Silveira

unread,
Oct 31, 2008, 11:04:09 AM10/31/08
to lista...@googlegroups.com
Bom meu amigo, se entendi direito, queres que o script seja executado em intervalos indeterminados, quando, e se, houver necessidade.
Não vejo meio de fazer isso diretamente com o PHP. Caso esteja utilizando interface web (rodando através de navegador) sugiro que procure a solução em javascript (ajax ou não), pois o php interage com o servidor, não com o usuário. Já o javascript faz o oposto.
Com PHP voce vai apenas manipular as requisições enviadas pelo usuário. Claro que posso estar enganado mas, ai foge do meu conhecimento.

2008/10/30 Edgar da Silva (Fly2k) <silva...@gmail.com>
Reply all
Reply to author
Forward
0 new messages