abc/scheduler
Experimental PHP scheduler library for running jobs based on CRON expressions. Define schedule providers and processors via simple interfaces, bind them in a Scheduler, and execute due schedules with an included Symfony Console command (abc:schedule).
A PHP library to process schedules base on CRON expressions.
Features:
Note: This project is still experimental!
composer require abc/scheduler
Define a schedule provider by implementing ProviderInterfacve.
namespace Abc\Scheduler;
interface ProviderInterface
{
/**
* @return string The provider's name, used to bind a provider to processors
*/
public function getName(): string;
/**
* @param int|null $limit
* @param int|null $offset
* @return ScheduleInterface[]
*/
public function provideSchedules(int $limit = null, int $offset = null): array;
public function save(ScheduleInterface $schedule): void;
}
Define a schedule processor by implementing ProcessorInterface.
namespace Abc\Scheduler;
/**
* Process a schedule that is due.
*/
interface ProcessorInterface
{
public function process(ScheduleInterface $schedule);
}
Bind Processor to Provider and initialize the ScheduleCommand
use Abc\Scheduler\Scheduler;
use Abc\Scheduler\Symfony\ScheduleCommand;
$myProvider = new MyProvider();
$myProcessor = new MyProcessor();
$scheduler = new Scheduler();
$scheduler->bind($myProvider, $myProcessor);
$command = new ScheduleCommand($scheduler);
Run the command
bin/console abc:schedule
The MIT License (MIT). Please see License File for more information.
How can I help you explore Laravel packages today?