mattmezza / scheduled-job
一个用于使用cron运行定时任务的包。
1.0.0
2019-02-11 21:19 UTC
Requires
- php: ^7.1
- mattmezza/logger: ^1.0
- vlucas/phpdotenv: ^2.6
Requires (Dev)
- phpunit/phpunit: ^6.5
This package is auto-updated.
Last update: 2024-09-12 10:15:15 UTC
README
安装
composer require mattmezza/scheduled-job
用法
1. 创建任务
class MyTask extends TaskStandard { public function getDescriptionString(): string { return 'Task description'; } public function run(array $allParam) { // do something } }
2. 创建工作
class MyJob extends JobStandard { public function getDescriptionString(): string { return 'Job description'; } public function getAllTask(): array { return [ new MyTask(), ]; } }
3. 运行工作
(new JobExecutorStandard())->execute($job, $argv]);
4. 观察工作和任务
您可以为工作和任务附加观察者。
$job->addObserver(new JobLogger()); $task->addObserver(new TaskLogger());
您可以通过实现 JobObserver
和 TaskObserver
来定义自定义观察者。
5. 使用cron自动化
创建一个PHP脚本文件,您可以通过cron运行它 ~/your-project/your-job.php
#!/usr/bin/env php <?php $job = ... # create the job as above try { (new JobExecutorStandard())->execute($job, $argv]); } catch (YourException $error) { // Oops, something happened... }
通过 crontab -e
在crontab中添加cron条目
# run five minutes after midnight, every day
5 0 * * * $HOME/your-project/your-job.php >> $HOME/tmp/out 2>&1
开发
- 添加不同类型的工作将很有用,每种工作都专门用于某种方式(例如,内存密集型等...)