1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Sugestoes sobre timer

Discussão em 'Web Development' iniciada por Armadillo, 22 de Novembro de 2007. (Respostas: 11; Visualizações: 770)

  1. Armadillo

    Armadillo Folding Member

    Boas.
    [Não sabia se havia de colocar este post em WebDev, Programaçao ou em *nix world, por isso se acharem melhor mover o tópico, força nisso...]

    Criei um script php q me gera um ficheiro HTML puro e duro.
    Preciso q o meu script corra no servidor, digamos, de 30 em 30 segundos.
    Como devo fazer isto?

    O SO é uma versao Debian modificada.

    Obrigado
     
    Última edição: 22 de Novembro de 2007
  2. lothar_m

    lothar_m Power Member

    talvez possas usar o cron, embora nao tenha a certeza sobre a sua utilização com scripts de php...

    creio que existem threads sobre isso no forum.
    tanto o google como a wikipedia têm montes informação sobre o cron.
     
  3. Armadillo

    Armadillo Folding Member

    A minha duvida é se, sendo um servidor de producao, se deverei usar o cron ou outro metodo de correr o php.
    Obrigado.
     
  4. LinuxWarrior

    LinuxWarrior Power Member

    Usa o cron sempre que puderes... o problema podera estar se a operação for muito pesada, mas se a operação vai ocorrer, em intervalos de tempo entao o cron e o teu melhor amigo :D
     
  5. slack_guy

    slack_guy Power Member

    Se esse script é o que estou a pensar ( :-) ) a cron não é solução. Tanto quanto sei, o intervalo mínimo na cron é de 1 minuto. Para esse script _eu_ faria qualquer coisa do género:

    Script 1:
    Código:
    cria o processo e escreve o PID num ficheiro;
    while (1) {
       faz_o_que_te_mando;
       sleep 30;
    }
    
    Script 2 (a executar a partir da cron, de x em x minutos - atenção: se calhar não precisa de correr as 24 horas do dia e os 7 dias da semana):
    Código:
    if (ficheiro) {
       le ficheiro;
       if (PID existe na tabela de processos) {
          exit;
       }
    }
    executa script 1;
    
    Para simplificar, podes resumir isto a um só script, chamado com argumentos diferentes. Fica à tua imaginação.
     
    Última edição: 22 de Novembro de 2007
  6. Armadillo

    Armadillo Folding Member

    Outra ideia baseada na tua e na minha (mais uma vez... :p):

    -por o cron a correr o php a partir das 9:00
    -no php, por um loop em que só termine ás 18:30, com sleep de 30 segundos.

    O q t parece?
     
  7. slack_guy

    slack_guy Power Member

    parece-me que tens de ter forma de verificar de tempos a tempos se o script está em execução. Durante um dia de trabalho acontecem muitas coisas :-)
     
  8. r3pek

    r3pek Power Member

    */2 * * * * <comando>

    ^^ todos os 30 segundos! :D
     
  9. Armadillo

    Armadillo Folding Member

    r3pek, podias ser mais explicito?
    obrigado
     
  10. esquiso

    esquiso Power Member

    Faz com que a cada meio minuto (30 segundos), a todas as horas, todos os dias (quer do mes, quer da semana) irá executar o <comando>, que vai ser definido por ti :)
     
  11. Armadillo

    Armadillo Folding Member

    fazendo
    */4 * * * * <comando>, executa de 15 em 15 segundos (e por ai em diante), certo?
     
  12. slack_guy

    slack_guy Power Member

    A esta hora, já deves ter notado que isto executa o script de 2 em dois minutos ;-)
    (O minuto é a unidade mais pequena, não é divisível)

    Teste:
    Código:
    # crontab -e
    */2 * * * * date >> /home/me/teste.txt
    ......
    $ cat /home/me/teste.txt
    Fri Nov 23 16:14:01 WET 2007
    Fri Nov 23 16:16:01 WET 2007
    ...
    
    O mais aproximado seria (até tenho medo de escrever... Please, don't do this!)
    Código:
    * * * * * /scripts/meu_script
    * * * * * sleep 30; /scripts/meu_script
    
    O melhor, é mesmo fazeres como te sugeri antes.
     
    Última edição: 23 de Novembro de 2007

Partilhar esta Página