AnyEvent-DateTime-Cron
view release on metacpan or search on metacpan
lib/AnyEvent/DateTime/Cron.pm view on Meta::CPAN
$cron->delete($job_id,$job_id,....)
Delete one or more existing jobs, before starting or while running.
=head2 start()
my $cv = $cron->start;
$cv->recv;
Schedules all jobs to start at the next scheduled time, and returns an
L<AnyEvent condvar|http://metacpan.org/module/AnyEvent#CONDITION-VARIABLES>.
The cron loop can be started by calling C<recv()> on the condvar.
=head2 stop()
$cron->stop()
Used to shutdown the cron loop gracefully. You can also shutdown the cron loop
by sending a C<TERM> signal to the process.
=head2 jobs()
$job = $cron->jobs
Returns a hashref containing all the current cron jobs.
=head2 debug()
$cron->debug(1|0)
Turn on debugging.
=head1 CALLBACKS
A callback is a coderef (eg an anonymous subroutine) which will be called
every time your job is triggered. Callbacks should use C<AnyEvent> themselves,
so that they run asynchronously, otherwise they can block the execution
of the cron loop, delaying other jobs.
Two parameters are passed to your callback: the main C<$cv> of the cron loop,
and the C<$job_description> which contains various details about the current
job.
The C<$cv> is the most important parameter, as it allows you to control how
your cron loop will shut down. If your callback doesn't use
C<AnyEvent> and is blocking, then your callback will complete before it
returns to the cron loop.
However, if your callback is running asynchronously (and it really should),
then you can block the cron loop from responding to a L</"stop()"> request
until your job has completed:
sub {
my $cv = shift;
$cv->begin;
do_something_asynchronous( cb => sub { $cv->end })
}
Callbacks are called inside an C<eval> so if they throw an error, they
will warn, but won't cause the cron loop to exit.
=head1 AUTHORS
=over 4
=item *
Clinton Gormley <drtech@cpan.org>
=item *
Andy Gorman <agorman@cpan.org>
=back
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2013 by Clinton Gormley.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
__END__
# ABSTRACT: AnyEvent crontab with DateTime::Event::Cron
( run in 0.846 second using v1.01-cache-2.11-cpan-ceb78f64989 )