Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Preciso executar uma função que tem sleep em modo independente será possível?
Primeiro faço a pesquisa no banco e me retorna o array dos dados.
Abaixo quebro o array em partes:
$array_montado = array_chunk($celulares_alunos,$dividir);
E na minha função: enviar_sms_array($array_montado[0],$minimo_segundos,$maximo_segundos);
Trecho da função: enviar_sms_array:
foreach ($celulares_array as $celular) {
$gerar_segundos = mt_rand($minimo_segundos,$maximo_segundos);
sleep($gerar_segundos);
echo 'Demorou <b>'.$gerar_segundos.'</b> segundos para enviar para o celular <b>'.$celular.'</b><br />';
//enviar_sms($ip_servidor,$login,$senha,'dongle1',$telefone,$mensagem);
}
Gostaria de executar os array independentes mudando somente o grupo de array que foi quebrado.
enviar_sms_array($array_montado[0],$minimo_segundos,$maximo_segundos);
enviar_sms_array($array_montado[1],$minimo_segundos,$maximo_segundos);
enviar_sms_array($array_montado[2],$minimo_segundos,$maximo_segundos);
Se alguém puder ajudar eu agradeço.
Muito obrigado.
Olá, Beraldo.
Verdade Beraldo, não tem o suporte para threads. Será que usando ajax e controlando o envio por setTimeOut não daria certo?
Valeu, té mais
Consegui resolver usando javascript.
Valeu, obrigado.
Com PHP não é possível, pois ele não possui suporte a threads.
Pensei que jogando processos para background poderia resolver. Testei aqui, mas também não dá certo.
Veja:
01.php
02.php
03.php
test.php
{Saída:
>
$ php test.php
Iniciando 01...
Finalizando 01...
Iniciando 02...
Finalizando 02...
Iniciando 03...
Finalizando 03...
O PHP executa cada comando system() um em seguida do outro, mesmo tendo o "&" no comando, que executa em background
Você terá de fazer isso com outra linguagem. Pode ser Python, Ruby ou até mesmo Shell Script (Bash)