helthe/chronos

Chronos: An object oriented cron job library

1.0.0 2013-06-13 20:30 UTC

This package is auto-updated.

Last update: 2024-03-29 02:36:40 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