Esiste un modulo o una funzione che mi permettono di eseguire codice ad una determinata ora?
Esiste un modulo o una funzione che mi permettono di eseguire codice ad una determinata ora?
In che linguaggio?
In Perl? Non avrebbe senso: chi ti dice che l'interprete Perl sia attivo in quell'istante?
Devi usare le funzioni del sistema operativo.
Se usi linux o sim, cerca cron o crontab
Se usi windows, non so, ma dovrebbe essre possibile.
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
Il codice sottostante mediante il modulo Win32::ChangeNotify fa la seguente cosa: rimane sempre in attesa, se il file prova.txt subisce una modifica negli attributi allora esegue le istruzioni della condizione.
############################
require Win32::ChangeNotify;
¬
sub not
{
$ntfy = Win32::ChangeNotify->new("c:/prova.txt",true,ATTRIBUTES);
$ntfy->wait;
if ($ntfy ne "")
{
### esegui qui l'applicazione o il comando che vuoi ###
$ntfy->reset;
¬
}
}
##########################
Ciò che mi chiedo è se si può legare questo tempo di attesa non alla modifica di qualcosa ma sulla base dell'orario
Ciao,
qualunque script può essere mantenuto sempre attivo inserendo un ciclo di questo tipo:
while (1) {
codice
}
è così che funzionano gli script con funzioni di server. Tieni però presente che gli script CGI sono soggetti a time out, per cui dopo poco il processo viene killato da SO, per cui in genere è meglio ricorrere agli strumenti offerti dal SO stesso per eseguire compiti periodici.
Marco Allegretti
shishii@tiscalinet.it
Lang: PERL, PHP, SQL.
Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips
Wow...non ci avevo mai pensato!!!!
pensi che se lo script fosse lanciato da terminale magari in background possa essere killato dopo un pò dal sistema operativo?
magari allegerendolo cosi'
codice:while (1) { sleep 5 ...code.. }
va benissimo anche sleep 1
comunque il carico deriva principalmente da quello che deve fare durante il while.
lanciato da terminale non dovrebbe essere sottoposto ad alcun time out.
Marco Allegretti
shishii@tiscalinet.it
Lang: PERL, PHP, SQL.
Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips