The "Scheduled Tasks" feature of Windows (at least Win2K) works just fine for this. I've been using it for months with no trouble. | [reply] [Watch: Dir/Any] |
I second that. I use cygwin all the time but for something like this, I would use Scheduled Tasks (you can find it in the Control Panel on Win2K) or the scheduler service on NT. I currently use Scheduled Tasks to run a Perl script daily and it works great.
| [reply] [Watch: Dir/Any] |
If you simply need to invoke a script every once in a while (say, 1 hour), you can pretty much get by without the aid of special modules. Simply, have a main loop in your script, inside of which you'll spawn off a process and sleep for 1 hour and then repeat this cycle all over again.
my $script = 'foobar.pl';
my $sleep_time = 60*60; # sleep for 1 hour.
while (1) {
system("foobar.pl");
sleep($sleep_time);
}
UPDATE: However, for complex scheduling, I suggest you take a look at the Schedule-Cron module. So, your script might look as following:
use Schedule::Cron;
sub run_scripts {
system("foobar.pl");
}
# Create new object with default dispatcher
my $cron = new Schedule::Cron();
# Add dynamically crontab entry
# invoke run_scripts() every 0 minute past
# each hour.
$cron->add_entry("0 * * * Mon-Fri", \&run_scripts);
# Run scheduler
$cron->run(detach=>1);
_____________________
open(I,$0);<I>;$~=$/;$/='~';$_=<I>;($/)=/(.)$~/;s/[$~~]//g;/(v)/;$-=$-[0];s;\Q$/\E;$~;g;($/,$^)=/^(.)(.)/;
#% xxxxxx xx-+ xx xxx xx xx xx xx xxx xxxxx+ xx xx xxxx xxxxx ......+
#x xxxxvxxx xx xx xv xxxx x+ %+ ===== xx xx xx xx x+ =x xx xx xx xx xx ...+
#x xx xx xx xx xx xx xx xx xxx+ xxxxxx xx +x xx xx+x- xxxx xxxx ........+
#% xx xx xx xx xx xx xx x+ xx xx =+=== xx xx xxxx-xx xx =x +x xx xx xx xx ...+
#% xx xx xx -+x+ xxx+ xx xx xx xx xx x+ xx xxx+xx xx xx xxxx xx xx ....+~
for(split/$~/){s,[ $/],,g;/(.)$/;$l=$-[0];/(.)/||next;$_=chr$-+$l;$".=($1=~/$^/)?" \u$_":$_;}print$";
| [reply] [Watch: Dir/Any] [d/l] [select] |
I remember hearing something about an at command on windows, so maybe you can look at that.
Otherwise:
while (1) {
system("some command") and die "Error running command: $?";
sleep 60*60;
}
Should at least try to do the job.
--
Joost downtime n. The period during which a system
is error-free and immune from user input.
| [reply] [Watch: Dir/Any] [d/l] [select] |