semivan / php-scheduler
Cron Scheduler
1.0.2
2021-11-29 09:52 UTC
Requires
- php: >=7.1
- dragonmantank/cron-expression: 2.*
This package is auto-updated.
Last update: 2025-03-29 00:58:00 UTC
README
Требования
- PHP >= 7.1
- dragonmantank/cron-expression
Установка
composer require semivan/php-scheduler
Настройка задания
Стандартные задания
$job = new \Scheduler\Job\BaseJob(); // Установка интервала (раз в неделю) $job->setExpression('0 0 * * 0'); // Установка выполняемого метода $job ->setCallableClass(CallableClass::class) ->setCallableMethod('callableMethod');
Пользовательские задания (например: из базы данных)
// CustomJob реализует интерфейс \Scheduler\Job\BaseJobInterface $jobs = CustomJob::findAll();
Настройка планировщика
$loader = new \Scheduler\Loader\BaseLoader(); // Добавление задания $loader->addJob($job); //$loader->addJobs($jobs); $scheduler = new \Scheduler\Scheduler($loader);
Установка пользовательского класса лога
// CustomLog реализует интерфейс \Scheduler\Log\BaseLogInterface $loader->setLogClass(CustomLog::class);
Установка функции дополнительной обработки задания или лога
В функцию передаются задание с логом и лог отдельно.
Ее можно использовать для проверки результата, сохранения лога в базу и т.д.
$loader->setCallback([new CallableClass(), 'callback']);
Запуск планировщика
$completedJobs = $scheduler->run();
Настройте файл конфигурации cron на выполнение этой команды с интервалом раз в минуту
Запуск задания без добавления в очередь
$log = $scheduler->runJob($job); $job->addLog($log);