WoOo Posted April 1, 2007 at 10:10 AM Report Share #91097 Posted April 1, 2007 at 10:10 AM Estava aqui a fazer uma pequena aplicação em PHP mas surgiu-me um problema. Preciso que isto me corra umas linhas de código automáticamente uma vez por dia. Que sugestões me dão? Para ficarem com uma ideia mais clara, trata-se de uma pequena consulta à BD que depois de verificar uma condição me envia emails automáticos, só que preciso que isto seja feito uma vez por dia sem influência de nenhum utilizador. Abraço Link to comment Share on other sites More sharing options...
AriOps Posted April 1, 2007 at 10:41 AM Report Share #91099 Posted April 1, 2007 at 10:41 AM Estava aqui a fazer uma pequena aplicação em PHP mas surgiu-me um problema. Preciso que isto me corra umas linhas de código automáticamente uma vez por dia. Que sugestões me dão? Para ficarem com uma ideia mais clara, trata-se de uma pequena consulta à BD que depois de verificar uma condição me envia emails automáticos, só que preciso que isto seja feito uma vez por dia sem influência de nenhum utilizador. Abraço Deves ter de usar um cronjob 👍 Daniel Correia Link to comment Share on other sites More sharing options...
WoOo Posted April 1, 2007 at 09:01 PM Author Report Share #91185 Posted April 1, 2007 at 09:01 PM Ok, thks! Link to comment Share on other sites More sharing options...
magician Posted April 1, 2007 at 09:18 PM Report Share #91187 Posted April 1, 2007 at 09:18 PM Penso que não é preciso ir a tanto basta um pequena aplicação em fiquem em sleep durante h horas e depois desse tempo executa o script php. I haven’t lost my mind; it’s backed up on DVD somewhere! Link to comment Share on other sites More sharing options...
djthyrax Posted April 1, 2007 at 09:37 PM Report Share #91189 Posted April 1, 2007 at 09:37 PM Penso que não é preciso ir a tanto basta um pequena aplicação em fiquem em sleep durante h horas e depois desse tempo executa o script php. Usando um loop infinito? while(1){ // código a executar sleep(50000); } Isso é só desperdiçar memória... Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
Rui Carlos Posted April 1, 2007 at 09:49 PM Report Share #91192 Posted April 1, 2007 at 09:49 PM Penso que não é preciso ir a tanto basta um pequena aplicação em fiquem em sleep durante h horas e depois desse tempo executa o script php. Usando um loop infinito? while(1){ // código a executar sleep(50000); } Isso é só desperdiçar memória... desperdiçar memória porquê? Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
djthyrax Posted April 1, 2007 at 09:56 PM Report Share #91194 Posted April 1, 2007 at 09:56 PM Penso que não é preciso ir a tanto basta um pequena aplicação em fiquem em sleep durante h horas e depois desse tempo executa o script php. Usando um loop infinito? while(1){ // código a executar sleep(50000); } Isso é só desperdiçar memória... desperdiçar memória porquê? Porque vais ter o processo "on hold" a ocupar-te memória (por mais insignificante que seja). Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
magician Posted April 1, 2007 at 10:11 PM Report Share #91198 Posted April 1, 2007 at 10:11 PM Quando fazes Sleep o programa fica "morto" como se não tive-se a correr e acredito que de uma forma ou outra o referido cronjob deve fazer algo do género. I haven’t lost my mind; it’s backed up on DVD somewhere! Link to comment Share on other sites More sharing options...
Rui Carlos Posted April 1, 2007 at 10:15 PM Report Share #91200 Posted April 1, 2007 at 10:15 PM assim à primeira vista vais ter sempre que ter um processo a controlar quando é que vais executar o código, por isso se não for este processo a ficar em memória vai ser outro. além do mais, o SO consegue saber que o processo está adormecido e certamente que quando for preciso memória será um dos primeiros a ir para a swap. não sei qual é a tua sugestão, mas parece-me que mesmo esses programas como o cronjob devem funcionar à base de sinais (tal como a função sleep). pelo menos em C não me parece uma solução assim tão má, em PHP não sei como é que isso ia funcionar. Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
djthyrax Posted April 1, 2007 at 10:21 PM Report Share #91202 Posted April 1, 2007 at 10:21 PM Tipo, o cron está sempre a correr, é um processo que vais ter sempre que ter em memória. Ele simplesmente de x em x tempo, vai criar o processo do PHP que dps é terminado por ele. Usando um loop infinito, vais ter o cron e o script sempre em memória, esteja ou não activo 😄 Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
Hipnoted Posted April 1, 2007 at 10:23 PM Report Share #91203 Posted April 1, 2007 at 10:23 PM Tipo, o cron está sempre a correr, é um processo que vais ter sempre que ter em memória. Ele simplesmente de x em x tempo, vai criar o processo do PHP que dps é terminado por ele. Usando um loop infinito, vais ter o cron e o script sempre em memória, esteja ou não activo 🙂 Ciclos infinitos ocupam é CPU, não mistures com memória. É verdade que fica lá sempre o endereço mas também não é preciso exagerar... 😄 "Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência" Link to comment Share on other sites More sharing options...
djthyrax Posted April 1, 2007 at 10:25 PM Report Share #91204 Posted April 1, 2007 at 10:25 PM Ciclos infinitos ocupam é CPU, não mistures com memória. É verdade que fica lá sempre o endereço mas também não é preciso exagerar... 😄 Porque vais ter o processo "on hold" a ocupar-te memória (por mais insignificante que seja). 🙂E em relação à memória, n tava a falar do ciclo mas sim dos dados que ficam "on hold" (variáveis, etc). Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
magician Posted April 1, 2007 at 10:32 PM Report Share #91205 Posted April 1, 2007 at 10:32 PM Imagina que fazes um while com um sleep tal como foi descrito ele não vai ocupar memoria com o ciclo ! o ciclo só vai correr de x em x tempo entre esse tempo a unica memoria ocupado é da processo e não acredito que o cronjob ocupe menos memoria que um micro programa escrito em C com meia dúzia de linha e que até fica em sleep. Para alem disso o script php não vai ficar em memoria porque depois de ser executada ele termina a sai. I haven’t lost my mind; it’s backed up on DVD somewhere! Link to comment Share on other sites More sharing options...
djthyrax Posted April 1, 2007 at 10:40 PM Report Share #91206 Posted April 1, 2007 at 10:40 PM Imagina que fazes um while com um sleep tal como foi descrito ele não vai ocupar memoria com o ciclo ! o ciclo só vai correr de x em x tempo entre esse tempo a unica memoria ocupado é da processo e não acredito que o cronjob ocupe menos memoria que um micro programa escrito em C com meia dúzia de linha e que até fica em sleep. Para alem disso o script php não vai ficar em memoria porque depois de ser executada ele termina a sai. Lol, o cron está sempre em memória e executa os cronjobs. 😄 E enquanto o programa está em sleep(), todas as variáveis continuam em memória embora sejam redefinidas ou não a cada iteração pelo que escreveste no loop. Ou seja, se nunca fizeres replace das variáveis ou não as "limpares", a cada iteração a memória ocupada é maior. 🙂 Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
QuickFire Posted April 1, 2007 at 10:41 PM Report Share #91208 Posted April 1, 2007 at 10:41 PM Porquê tanta trabalheira se podes simplesmente usar cronjob ? Se tiveres cPanel normalmente tens lá uma secção para isso 😄 Link to comment Share on other sites More sharing options...
jreis Posted April 3, 2007 at 03:45 PM Report Share #91662 Posted April 3, 2007 at 03:45 PM Eu cá também usaria cronjobs, que é mesmo para isso que serve... Não esquecer que o sleep() guarda um processo httpd (assumindo uso do apache, o mais provável), na configuração que uso são logo ~8MB de memória. Poderá eventualmente ser mais (tenho uma config relativamente simples). Cron para a frente! "Pensa positivo: tudo pode piorar" Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now