Brambilla 0 Denunciar post Postado Maio 31, 2010 Boa tarde tenho uma função que enviará emails gostaria que a cada 6 envios desse uma pausa de uma hora no looping de for com ajuda do javascript $n_env = 0; for($i=0;$i<$envio;$i++) { $n_env++; $enviar[$i].= $mails_ex[$i]; //echo $i.': '.$enviar[$i].'<br>'; if($n_env == $resp) { $n_env = 0; $ano = date("Y"); $mes = date("m"); $dia = date("d"); $hora = date("H"); $min=date("i"); $seg=date("s"); //$hora = $hora +1; ?> <script type="text/javascript"> window.onload=function() { atualizaContador('<?php echo $ano;?>','<?php echo $mes;?>','<?php echo $dia;?>','<?php echo $hora;?>','<?php echo $min;?>','<?php echo $seg;?>','saida'); } </script> <div id="saida"></div> <input type="text" name="tempo" id="tempo" value="" /> <?php if($tempo == ''){break;} else {echo 'eee';} } else { echo '<br>Enviando...'; }a função javascript recebe o valor pelo innerHTMLserá que tem alguma forma de fazer isto? Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Maio 31, 2010 Com o PHP use sleep. Compartilhar este post Link para o post Compartilhar em outros sites
borsatti 2 Denunciar post Postado Maio 31, 2010 sim, é só usar o break exemplo : <?php for ($i=0;$i<=10;$i++) { if ($i == "5") { break; } echo $i; } ?> Com o PHP use sleep. tambem da com o sleep exemplo : <?php for ($i=0;$i<=10;$i++) { if ($i == "5") { sleep("2"); } echo $i; flush(); # usei o flush para ele mostrar algo antes de terminar todo a execução do script! } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Maio 31, 2010 Olha, para pausar o loop, você pode usar o sleep, mas não consegui entender o seu código. Tá meio confuso. Vejamos um exemplo do for. for($i = 0; $i ++ < $envio;) { // aqui dentro você coloca o código para enviar o e-mail // se for múltiplo de 6, para 1 hora (3600 segundos) if (($i % 6) == 0) sleep ( 3600 ); } Veja se compreende. Qualquer dúvida, volte a perguntar. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Brambilla 0 Denunciar post Postado Maio 31, 2010 vou tentar usar o sleep meu código ta meio confuso pq estou tentando fazer vários testes disculpa ai hehe é que assim eu posso enviar 200 emails por hora e 30 emails por envio certo eu atéconsegui o contator em javascript para mostrar ao usuário quanto o tempo que falta depois que contasse 1 hora continuar enviando estava pensando se caso o usuário atualiza-se a pagina continuar contanto do ponto que parou para isso ireit gravar a hora no banco e chamar com a função javascript, se tivesse como fazer ficaria muito legal essa ferramenta e o sleep(); acredito ele reiniciaria né alguém tem uma idéia Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Maio 31, 2010 Olha, para enviar e-mail neste caso o melhor é dar o sleep a cada envio. Por exemplo, se você pode enviar 200 e-mails por hora, então você pode enviar 1 e-mail a cada 18 segundos. Então, ficaria mais ou menos assim: while ($row = mysql_fetch_assoc()){ // envia email // faz um update no banco, para dizer que enviou este e-mail sleep (18); } Assim você não sobrecarrega o servidor com 200 e-mails de uma só vez e ficando 1 hora parado. Assim você não vai passar do máximo permitido e não vai sobrecarregar o servidor também. O ideal é executar este tipo de script via CronJob(Linux) ou Agendador de Tarefas(Windows) para não precisar ficar com o navegador aberto enquanto envia. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Brambilla 0 Denunciar post Postado Maio 31, 2010 beleza vou usar isto estava vendo fazer 6 envios por hora que daria 10 segundos Compartilhar este post Link para o post Compartilhar em outros sites
borsatti 2 Denunciar post Postado Maio 31, 2010 beleza vou usar isto estava vendo fazer 6 envios por hora que daria 10 segundos 6 envios por minuto que daria 10 segundos.... Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Maio 31, 2010 Bota o Cronjob pra executar o arquivo de disparo, e nesse arquivo de disparo coloca um set_time_limit( 0 ) para a execução não ter limite de tempo. Feito é só deixar rolar :D. Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Maio 31, 2010 Bota o Cronjob pra executar o arquivo de disparo, e nesse arquivo de disparo coloca um set_time_limit( 0 ) para a execução não ter limite de tempo. Feito é só deixar rolar :D. Muito importante a dica do André. Sem o set_time_limit o script será encerrado por tempo limite, provavelmente antes de finalizar a execução. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Brambilla 0 Denunciar post Postado Maio 31, 2010 realmente da problema set_time_limit('0') ; sleep ("10");é normal o navegador ficar carregando e não mostrar nada? Compartilhar este post Link para o post Compartilhar em outros sites
borsatti 2 Denunciar post Postado Maio 31, 2010 realmente da problema set_time_limit('0') ; sleep ("10");é normal o navegador ficar carregando e não mostrar nada? Sim, ele nao vai mostrar nada até terminar a execução... ou voce pode por um flush()!!! Compartilhar este post Link para o post Compartilhar em outros sites
Brambilla 0 Denunciar post Postado Dezembro 30, 2010 o sleep não resolveu para mim fiz algumas (IFS) condições e contador javascript e resolveu att. Brambilla Compartilhar este post Link para o post Compartilhar em outros sites