gitpan / algorithm-cron Goto Github PK
View Code? Open in Web Editor NEWRead-only release history for Algorithm-Cron
Home Page: http://metacpan.org/release/Algorithm-Cron
License: Other
Read-only release history for Algorithm-Cron
Home Page: http://metacpan.org/release/Algorithm-Cron
License: Other
NAME `Algorithm::Cron' - abstract implementation of the cron(8) scheduling algorithm SYNOPSIS use Algorithm::Cron; my $cron = Algorithm::Cron->new( base => 'local', crontab => "*/10 9-17 * * *", ); my $time = time; while(1) { $time = $cron->next_time( $time ); sleep( time - $time ); print "Do something\n"; } DESCRIPTION Objects in this class implement a time scheduling algorithm such as used by cron(8). Objects are stateless once constructed, and represent a single schedule as defined by a crontab(5) entry. The object implements a method `next_time' which returns an epoch timestamp value to indicate the next time included in the crontab schedule. Crontabs The schedule is provided as a set of acceptable values for each field of the broken-down time (as returned by `localtime' or `gmtime'), either in a single string called `crontab' or by a set of named strings, each taking the name of a crontab(5) field. my $cron = Algorithm::Cron->new( base => 'local', crontab => '0 9 * * mon-fri', ); my $cron = Algorithm::Cron->new( base => 'local', min => 0, hour => 9, wday => "mon-fri", ); A `crontab' field containing a single asterisk (`*'), or a missing named field, indicates that any value here is included in the scheduled times. To restrict the schedule, a value or set of values can be provided. This should consist of one or more comma-separated numbers or ranges, where a range is given as the start and end points, both inclusive. hour => "3-6" hour => "3,4,5,6" Ranges can also be prefixed by a value to give the increment for values in that range. min => "*/10" min => "0,10,20,30,40,50" The `mon' and `wday' fields also allow symbolic month or weekday names in place of numeric values. These names are always in the C locale, regardless of the system's locale settings. mon => "mar-sep" wday => "mon,wed,fri" Specifying `sun' as the end of a `wday' range, or giving the numeric value of `7' is also supported. wday => "fri-sun" wday => "5-7" # Both equivalent to: wday => "0,5,6" As per cron(8) behaviour, this algorithm looks for a match of the `min', `hour' and `mon' fields, and at least one of the `mday' or `mday' fields. If both `mday' and `wday' are specified, a match of either will be sufficient. As an extension, seconds may be provided either by passing six space-separated fields in the `crontab' string, or as an additional `sec' field. If not provided it will default to `0'. If six fields are provided, the first gives the seconds. Time Base `Algorithm::Cron' supports using either UTC or the local timezone when comparing against the given schedule. CONSTRUCTOR $cron = Algorithm::Cron->new( %args ) Constructs a new `Algorithm::Cron' object representing the given schedule relative to the given time base. Takes the following named arguments: base => STRING Gives the time base used for scheduling. Either `utc' or `local'. crontab => STRING Gives the crontab schedule in 5 or 6 space-separated fields. sec => STRING, min => STRING, ... mon => STRING Optional. Gives the schedule in a set of individual fields, if the `crontab' field is not specified. METHODS @seconds = $cron->sec @minutes = $cron->min @hours = $cron->hour @mdays = $cron->mday @months = $cron->mon @wdays = $cron->wday Accessors that return a list of the accepted values for each scheduling field. These are returned in a plain list of numbers, regardless of the form they were specified to the constructor. Also note that the list of valid months will be 0-based (in the range 0 to 11) rather than 1-based, to match the values used by `localtime', `gmtime', `mktime' and `timegm'. $time = $cron->next_time( $start_time ) Returns the next scheduled time, as an epoch timestamp, after the given timestamp. This is a stateless operation; it does not change any state stored by the `$cron' object. AUTHOR Paul Evans <[email protected]>
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.