Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

pbs

script pára em certos servidores

Mensagens Recomendadas

pbs

Viva pessoal,

a questão é, preciso que um script corra durante várias horas, e tenho o script a correr bem num servidor, mas noutros pára sem motivo aparente.

o code:

<?php

print 'o loop começou';

ignore_user_abort(1);

$interval = 10;

set_time_limit(0);

#print ini_get('max_execution_time');

$file = fopen('log_loop.txt', 'w');

#-------------------------------------------------------------------
#LOOP

for( $i = 0; $i < 500; $i++ ):

fwrite( $file , date('h:i:s d-m-Y')." #".$i. " loop with of $interval second, should write 500\n");

#enforce
set_time_limit(0);

sleep( $interval );

endfor;

fclose( $file );

#END LOOP
#-------------------------------------------------------------------
?>

Já fiz alterações ao max_execution_time no próprio script e no ficheiro php.ini e nada.

Alguma ideia de qual config possa ser?

Obrigado.

Editado por yoda

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pbs

A função que lhe dou é para enviar mails sem exceder o limite do servidor por hora.

Na versão de testes que coloquei, escreve apenas num file..

É que quero mudar de alojamento, mas no que estou a testar ( PTisp ), esse script pára...

De todas as pesquisas que fiz, usar:

ignore_user_abort(1);

ignorar o fechar do browser

e

set_time_limit(0);

tempo infinito para execução

deveria ser suficiente, mas não é..

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
themeleon

Isso deve-se ao facto de o teu host ter impedido a instrução set_time_limit(0); ignore_user_abort(1); já para evitar que faças este tipo de coisas (consumir recursos em background que dão cabo dos servidores todos)

Estas instruções na prática deixam o script a bombar horas e horas a fio, agora imagina o que é 100 pessoas chamarem o envio de uma newsletter por engano por exemplo....

Portanto se queres chamar instruçoes de x em x tempo automaticamente recomendo-te que uses cronjobs (no teu cpanel tens isso, a não ser q estejas a usar outro "webmaster cenas")

Editado por themeleon

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
yoda

Eu não confiava nessa hipótese de poder configurar o php.ini, que muitas vezes vem mascarada ... tal como os ISP's comumente fazem com o "download ilimitado" que não o é.

Cronjobs, como te indicaram acima, é a opção mais viável para o teu caso, e se quiseres mesmo deixar o script a correr como tens, o ideal é arranjares servidor dedicado ou VPS. Alojamentos partilhados têm sempre limitações.

Editado por yoda

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
taviroquai

Isso sao comentários em php?

Ok esqueçam a pergunta lol

Editado por taviroquai

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.