jc-it/yii2-job-queue-recurring
作业队列实现 - 定时扩展。
v2.0.1
2022-08-16 11:42 UTC
Requires
- php: >=8.0
- dragonmantank/cron-expression: ^3.3
- jc-it/yii2-job-queue: ^2.0
This package is auto-updated.
Last update: 2024-09-16 16:19:01 UTC
README
此扩展提供了一个用于在yii2作业队列中存储定时作业的数据库实现。
$ composer require jc-it/yii2-job-queue-recurring
或者添加
"jc-it/yii2-job-queue-recurring": "<latest version>"
到你的composer.json
文件的require
部分。
配置
已添加定时作业的可能实现。此实现使用Cron表示法和Active Record模型存储重复性。它可以通过为AR模型和Handler创建自己的实现来轻松扩展。
要使用该包提供的实现使用定时作业
- 将
\JCIT\jobqueue\migrations
添加到你的迁移命名空间,或者从包中的迁移扩展一个新的迁移并运行它们 - 在
ContainerMapLocator
中注册\JCIT\jobqueue\jobs\RecurringJob::class
和\JCIT\jobqueue\jobHandlers\RecurringHandler::class
(如配置中所示) - 将定时动作添加到控制器中
public function actions(): array { return [ 'daemon' => \JCIT\jobqueue\actions\DaemonAction::class, 'recurring' => \JCIT\jobqueue\actions\RecurringJobAction::class, ]; }
- 运行动作,例如
./yii job-queue/recurring
- 将定时作业添加到数据库中,例如
$jobFactory = \Yii::createObject(\JCIT\jobqueue\interfaces\JobFactoryInterface::class); $job = new \JCIT\jobqueue\models\activeRecord\RecurringJob([ 'name' => 'Hello world job', 'description' => 'Say hello to the world every minute', 'job_data' => $jobFactory->saveToArray(new \JCIT\jobqueue\jobs\HelloJob('world')), 'cron' => '* * * * *' ]); $job->save();