NAME
Mojolicious::Plugin::Cron - a Cron-like helper for Mojolicious and Mojolicious::Lite projects
SYNOPSIS
# Execute some job every 5 minutes, from 9 to 5
# Mojolicious::Lite
plugin Cron( '*/5 9-17 * * *' => sub {
# do someting non-blocking but useful
});
# Mojolicious
$self->plugin(Cron => '*/5 9-17 * * *' => sub {
# same here
});
# More than one schedule, or more options requires extended syntax
plugin Cron => (
sched1 => {
base => 'utc', # not needed for local base
crontab => '*/10 15 * * *', # every 10 minutes starting at minute 15, every hour
code => sub {
# job 1 here
}
},
sched2 => {
crontab => '*/15 15 * * *', # every 15 minutes starting at minute 15, every hour
code => sub {
# job 2 here
}
});
DESCRIPTION
Mojolicious::Plugin::Cron is a Mojolicious plugin that allows to schedule tasks directly from inside a Mojolicious application. You should not consider it as a *nix cron replacement, but as a method to make a proof of concept of a project.
BASICS
When using preforked servers (as applications running with hypnotoad), some coordination is needed so jobs are not executed several times. Mojolicious::Plugin::Cron uses standard Fcntl functions for that coordination, to assure a platform-independent behavior.
METHODS
Mojolicious::Plugin::Cron inherits all methods from Mojolicious::Plugin and implements the following new ones.
register
$plugin->register(Mojolicious->new, {Cron => '* * * * *' => sub {}});
Register plugin in Mojolicious application.
WINDOWS INSTALLATION
To install in windows environments, you need to force-install module Test::Mock::Time, or installation tests will fail.
AUTHOR
Daniel Mantovani, dmanto@cpan.org
COPYRIGHT AND LICENCE
Copyright 2018, Daniel Mantovani.
This library is free software; you may redistribute it and/or modify it under the terms of the Artistic License version 2.0.
SEE ALSO
Mojolicious, Mojolicious::Guides, Mojolicious::Plugins, Algorithm::Cron