Ir para conteúdo
Fórum Script Brasil
  • 0

[Resolvido] Treads, o PHP possui?


Roo

Pergunta

Boa tarde amigos, gostaria de saber se o PHP possui treads, ou um scheduler, para agendar que uma rotina rode a cada 200 segundos, por exemplo... Se tiver, qual é o nome da função?

Obrigado e uma ótima tarde!

Editado por Roo
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Não, PHP não tem nada que faça isso nativamente ...

Mas se combinar com outras linguagens como JavaScript ou com o servidor usando o Cron do Linux por exemplo é possível fazer isso :P

Hummm, e no JavaScript como se chama a função que faria isso? Obrigado de novo! :)

Link para o comentário
Compartilhar em outros sites

  • 0
Boa tarde amigos, gostaria de saber se o PHP possui treads, ou um scheduler, para agendar que uma rotina rode a cada 200 segundos, por exemplo... Se tiver, qual é o nome da função?

Obrigado e uma ótima tarde!

seria isso?

$pid = pcntl_fork();

if ($pid == -1) {

     die('Erro ao lançar thread');

} else if ($pid) {

     // thread principal
     //aguardamos a thread child terminar
     pcntl_wait($status); 

     echo "Processo child terminado\n";

     exit(0);

} else {

     //thread secundario
     //mudamos para um usuário não privilegiado
     posix_setuid(1000);
     posix_setgid(1000);

     //colocamos a thread para fazer algo,
     //ate que uma condição seja satisfeita e ela termine
    $i=0;
    while(true){    

           if (file_exists('/tmp/stop')){
        echo "Terminado thread";
        exit(0);
       }

       echo "Iteração : ". ++$i . "\n";
       sleep(2);

    }

}

Créditos:

AlexM

Link para o comentário
Compartilhar em outros sites

  • 0
Boa tarde amigos, gostaria de saber se o PHP possui treads, ou um scheduler, para agendar que uma rotina rode a cada 200 segundos, por exemplo... Se tiver, qual é o nome da função?

Obrigado e uma ótima tarde!

seria isso?

$pid = pcntl_fork();

if ($pid == -1) {

     die('Erro ao lançar thread');

} else if ($pid) {

     // thread principal
     //aguardamos a thread child terminar
     pcntl_wait($status); 

     echo "Processo child terminado\n";

     exit(0);

} else {

     //thread secundario
     //mudamos para um usuário não privilegiado
     posix_setuid(1000);
     posix_setgid(1000);

     //colocamos a thread para fazer algo,
     //ate que uma condição seja satisfeita e ela termine
    $i=0;
    while(true){    

           if (file_exists('/tmp/stop')){
        echo "Terminado thread";
        exit(0);
       }

       echo "Iteração : ". ++$i . "\n";
       sleep(2);

    }

}

Créditos:

AlexM

Oi, desculpe mas sou novo em PHP e não entendi direito. Ali nesta função você não define um intervalo de tempo, né?

Link para o comentário
Compartilhar em outros sites

  • 0
Oi, desculpe mas sou novo em PHP e não entendi direito. Ali nesta função você não define um intervalo de tempo, né?

basicamente sim, mas essa função ai pode ser implementada, estude isso aqui: http://php.net/manual/en/book.pcntl.php

mas não entendo praticamente nada, apenas vi a referencia! :)

abraço

Editado por GuerreiroDaLuz
Link para o comentário
Compartilhar em outros sites

  • 0
Oi, desculpe mas sou novo em PHP e não entendi direito. Ali nesta função você não define um intervalo de tempo, né?

basicamente sim, mas essa função ai pode ser implementada, estude isso aqui: http://php.net/manual/en/book.pcntl.php

mas não entendo praticamente nada, apenas vi a referencia! :)

abraço

Beleza cara, acho que é por aí sim! Obrigado!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...