0

crontab a cada 20 segundos

criado por Diego Campos em 14/08/2010 5:50am
Pessoal, sabendo que tarefas cron podem ser executadas apenas a cada 1 minuto e necessitando executar uma a cada 20 segundos, estou buscando uma função no php para chamar outro php 20 segundos após ser chamado, exemplo:

1.php (agendado no cron a cada minuto)
executa um INSERT e chama 2.php 20 segundos depois

2.php (sem agendamento, inicia 20s após o 1.php)
executa um INSERT e chama 3.php 20 segundos depois

3.php(sem cron, inicia 20s após 2.php)
executa um INSERT

notem que aqui fechou 40s então quando fechar 60 o 1php será chamado novamente e aparentemente o problema estará resolvido, executando a cada 20s

porém não sei qual comando utilizo no 1.php para chamar o 2.php após 20s

alguém pode me dar uma luz?

Lista de Respostas:

0
14/08/2010 12:53pm
(~8 anos atrás)
Marcos Regis respondeu:
Tente utilizar as função register_shutdown_function.
Uma alternativa seria colocar em loop e pausar a execução em 20s com sleep.

0
14/08/2010 1:31pm
(~8 anos atrás)
Bem.
Já que vai ser um script apenas para isto, acho melhor apenas fazer um looping utilizando o sleep(20);

Veja

for($i = 0; $i < 100; $i++){
    echo date('d/m/Y H:i:s');
    sleep(20);
}
echo date('d/m/Y H:i:s');

Se você colocar este código para executar, você vai quer o funcionamento.
Então basta você colocar dentro de um looping o insert que você deseja fazer no banco...

Quanto ao register_shutdown_function(), não acho necessário.
Basta você criar este código separado, e depois faze-lo executar e manter o navegador aberto até que termine o procedimento.

0
30/08/2010 1:11pm
(~8 anos atrás)
normalmente faço no próprio shell, pausando por 20 segundos o 1º e 20 segundos o 2º

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)