slavkluev / yii2-job-progress
这是一个 Yii2 扩展,可以让你知道队列中作业的进度。
v1.0.0
2020-07-26 12:51 UTC
Requires
- php: ~7.2
- yiisoft/yii2-queue: ^2.3
Requires (Dev)
- phpunit/phpunit: >=8.0
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2024-09-26 22:11:13 UTC
README
这是一个 Yii2 扩展,可以让你知道队列中作业的进度。
安装
通过 Composer
$ composer require slavkluev/yii2-job-progress
您需要为队列组件添加进度行为。更新配置文件
'components' => [ 'queue' => [ // ... 'as progress' => \slavkluev\JobProgress\ProgressBehavior::class, ], ],
要向您的应用程序添加迁移,编辑控制台配置文件以配置命名空间迁移
'controllerMap' => [ // ... 'migrate' => [ 'class' => 'yii\console\controllers\MigrateController', 'migrationPath' => null, 'migrationNamespaces' => [ // ... 'slavkluev\JobProgress\migrations', ], ], ],
然后应用新迁移
$ yii migrate
使用方法
class TestJob extends BaseObject implements \yii\queue\JobInterface { public function execute($queue) { \Yii::$app->queue->setProgressMax(100); for ($i = 0; $i < 100; $i++) { \Yii::$app->queue->incrementProgress(); sleep(1); } } }
如果作业已完成并删除,您可以通过 $jobId 查找进度。
$jobProgress = JobProgress::findByJobId($jobId); echo $jobProgress->getProgressMax() . PHP_EOL; echo $jobProgress->getProgressNow() . PHP_EOL; echo $jobProgress->getPercent() . PHP_EOL;
文档
// JobProgress methods $jobProgress->getProgressMax(); // Integer $jobProgress->getProgressNow(); // Integer $jobProgress->getPercent(); // Float // Queue methods (Call from your Job) \Yii::$app->queue->setProgressMax(int $value); // Update the max number of progress. \Yii::$app->queue->setProgressNow(int $value); // Update the current number of progress. \Yii::$app->queue->incrementProgress(int $offset); // Increase current number of progress by $offset. \Yii::$app->queue->getProgressMax(); // Integer \Yii::$app->queue->getProgressNow(); // Integer \Yii::$app->queue->getPercent(); // Float
测试
$ composer test
贡献
请参阅 CONTRIBUTING 和 CODE_OF_CONDUCT 了解详情。
安全性
如果您发现任何安全问题,请通过电子邮件 slavkluev@yandex.ru 联系我们,而不是使用问题跟踪器。
致谢
许可协议
MIT 许可协议 (MIT)。请参阅 许可文件 获取更多信息。