Jump to content

script pára em certos servidores


Recommended Posts

Posted (edited)

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.

Edited by yoda
Posted

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 é..

Posted (edited)

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")

Edited by themeleon
Posted (edited)

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.

Edited by yoda
  • 3 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.