helthe / chronos
Chronos: An object oriented cron job library
Requires
- php: >=5.3.3
- symfony/process: ~2.2
This package is auto-updated.
Last update: 2024-10-29 03:58:41 UTC
README
Chronos provides an object oriented library for managing cron jobs both with crontab and programmatically.
Installation
Add the following in your componser.json:
{ "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
.
Crontab
You can use the library to both deploy cron jobs directly into crontab.
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.
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.
The CRON expression parser was initially based on the parser built by Michael Dowling.
Resources
You can run the unit tests with the following command:
$ cd path/to/Helthe/Component/XXX/
$ composer.phar install --dev
$ phpunit