Chronos provides an object oriented library for managing cron jobs both with crontab and programmatically., (*1)
Installation
Add the following in your componser.json:, (*2)
{
"require": {
"helthe/chronos": "~1.0"
}
}
Usage
CRON expression
At its core, Chronos uses a CRON expression parser to validate all cron jobs. It supports all the language
characteristics defined here as well as the
predefined scheduling definitions except @reboot
., (*3)
Crontab
You can use the library to both deploy cron jobs directly into crontab., (*4)
use Helthe\Component\Chronos\Crontab;
use Helthe\Component\Chronos\Job\CommandJob;
$crontab = new Crontab();
$job = new CommandJob('@hourly', '/usr/bin/my_great_command');
$crontab->add($job);
$crontab->update();
CronJobScheduler
You can also programmatically run cron jobs., (*5)
use Helthe\Component\Chronos\CronJobScheduler;
use Helthe\Component\Chronos\Job\CommandJob;
$scheduler = new CronJobScheduler();
$job = new CommandJob('@hourly', '/usr/bin/my_great_command');
$scheduler->add($job);
$scheduler->runJobs();
Credits
Chronos was created to fill the need for managing recurring jobs in PHP. The initial inspiration for it was to
have a Whenever equivalent in PHP., (*6)
The CRON expression parser was initially based on the parser
built by Michael Dowling., (*7)
Resources
You can run the unit tests with the following command:, (*8)
$ cd path/to/Helthe/Component/XXX/
$ composer.phar install --dev
$ phpunit