phpsoftbox / scheduler
Scheduler component for the PhpSoftBox framework
dev-master
2026-09-02 14:14 UTC
Requires
- php: ^8.5
- psr/clock: ^1.0
- psr/container: ^2.0
- psr/simple-cache: ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.93
- phpsoftbox/cli-app: dev-master
- phpsoftbox/cs-fixer: ^1.1.0
- phpsoftbox/queue: dev-master
- phpunit/phpunit: ^11.2
Suggests
- ext-redis: Required by RedisScheduleLockStore for atomic distributed scheduler locks
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-02 14:14:44 UTC
README
About
phpsoftbox/scheduler — планировщик задач с cron-выражениями и удобным API для расписаний. Позволяет регистрировать задания и запускать их только в нужное время.
Ключевые свойства:
Schedulerдля регистрации задач и запуска по расписаниюScheduledTaskдля настройки расписанийScheduledGroupдля групповых расписанийCronExpressionдля проверки времени- поддержка DI для invokable-обработчиков
- opt-in блокировки пересечений через
withoutOverlapping() - атомарный
onOneServer()для нескольких scheduler-реплик - подробный
ScheduleResultи изоляция ошибок отдельных задач - PSR-20 clock для детерминированного времени
- запуск CLI-команд через
command() - опциональная интеграция с
Queue
Quick Start
use DateTimeImmutable; use PhpSoftBox\Scheduler\Scheduler; $scheduler = new Scheduler(); $scheduler->run(function (DateTimeImmutable $time): void { // задача каждые 5 минут })->every(5)->minutes(); $scheduler->dispatch(new DateTimeImmutable('now'));
Для production/HA передайте атомарный ScheduleLockStoreInterface. Обычный
PSR-16 cache остаётся совместимым single-process fallback, но его контракт не
позволяет гарантировать атомарность между репликами.