semivan/php-scheduler

1.0.2 2021-11-29 09:52 UTC

This package is auto-updated.

Last update: 2024-09-29 05:02:40 UTC


README

要求

安装

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);