Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: What is the best way to run periodic tasks (once per minute)?

by qi3ber (Scribe)
on Jul 26, 2000 at 18:01 UTC ( [id://24485]=note: print w/replies, xml ) Need Help??


in reply to What is the best way to run periodic tasks (once per minute)?

Corion is correct. A modification that I have had to make on several occasions allows for more time intensive tasks is this:

while (1) { $waketime = time + $sleep_duration; &do_complex_things; sleep($waketime-time); }


Something else that you might want to look into is the Time::HiRes module.

Replies are listed 'Best First'.
Re: Answer: What is the best way to run periodic tasks (once per minute)?
by flyingmoose (Priest) on Feb 03, 2004 at 00:25 UTC
    A more Unix-y way to do this would be to use the alarm function. See 'perldoc -f alarm' for details.
    #!/usr/bin/perl use strict; my $interval = 60; # seconds between calls + # sub will be called every $interval seconds my $process = sub { print "processing!\n" }; + # engage the alarm system $SIG{ALRM} = sub { &$process; alarm $interval; }; + alarm $interval; + # function will be called every 60 seconds for rest of program...

    Another alternative would be to upgrade the program to use POE events. This would be the route I would take. The alarm demo is more for historical interest and fiddling than for anything else.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://24485]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chanting in the Monastery: (3)
As of 2024-04-24 02:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found