ComposerUpdate

This commit is contained in:
Anyon 2020-12-15 18:13:28 +08:00
parent 7c56cab8e3
commit 9b6ec3378f
6 changed files with 25 additions and 18 deletions

View File

@ -937,12 +937,12 @@
"source": {
"type": "git",
"url": "https://github.com/zoujingli/ThinkLibrary.git",
"reference": "6095c8e362118fd00d00f924a7ec342859e88104"
"reference": "7fc5a459d6d05cb905b1e0c604a50e9a36795ecb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/zoujingli/ThinkLibrary/zipball/6095c8e362118fd00d00f924a7ec342859e88104",
"reference": "6095c8e362118fd00d00f924a7ec342859e88104",
"url": "https://api.github.com/repos/zoujingli/ThinkLibrary/zipball/7fc5a459d6d05cb905b1e0c604a50e9a36795ecb",
"reference": "7fc5a459d6d05cb905b1e0c604a50e9a36795ecb",
"shasum": "",
"mirrors": [
{
@ -959,7 +959,7 @@
"ext-mbstring": "*",
"topthink/framework": "^6.0"
},
"time": "2020-12-10T08:26:28+00:00",
"time": "2020-12-15T10:00:46+00:00",
"type": "library",
"extra": {
"think": {

2
vendor/services.php vendored
View File

@ -1,5 +1,5 @@
<?php
// This file is automatically generated at:2020-12-14 18:23:12
// This file is automatically generated at:2020-12-15 18:12:50
declare (strict_types = 1);
return array (
0 => 'think\\admin\\Library',

View File

@ -70,13 +70,14 @@ abstract class Command extends ThinkCommand
/**
* 设置进度消息并继续执行
* @param null|string $message 进度消息
* @param null|integer $progress 进度数值
* @param null|float $progress 进度数值
* @param integer $backline 回退行数
* @return static
*/
protected function setQueueProgress(?string $message = null, $progress = null)
protected function setQueueProgress(?string $message = null, $progress = null, $backline = 0): Command
{
if (defined('WorkQueueCode')) {
$this->queue->progress(2, $message, $progress);
$this->queue->progress(2, $message, $progress, $backline);
} elseif (is_string($message)) {
$this->output->writeln($message);
}

View File

@ -77,12 +77,13 @@ abstract class Queue
/**
* 设置任务的进度
* @param null|string $message 进度消息
* @param null|integer $progress 进度数值
* @param null|float $progress 进度数值
* @param integer $backline 回退行数
* @return Queue
*/
protected function setQueueProgress(?string $message = null, $progress = null): Queue
protected function setQueueProgress(?string $message = null, $progress = null, $backline = 0): Queue
{
$this->queue->progress(2, $message, $progress);
$this->queue->progress(2, $message, $progress, $backline);
return $this;
}

View File

@ -154,9 +154,10 @@ class QueueService extends Service
* @param null|integer $status 任务状态
* @param null|string $message 进度消息
* @param null|float $progress 进度数值
* @param integer $backline 回退信息行
* @return array
*/
public function progress(?int $status = null, ?string $message = null, $progress = null): array
public function progress(?int $status = null, ?string $message = null, $progress = null, $backline = 0): array
{
$ckey = "queue_{$this->code}_progress";
if (is_numeric($status) && intval($status) === 3) {
@ -172,7 +173,10 @@ class QueueService extends Service
'code' => $this->code, 'status' => $status, 'message' => $message, 'progress' => $progress, 'history' => [],
]);
} catch (\Exception | \Error $exception) {
return $this->progress($status, $message, $progress);
return $this->progress($status, $message, $progress, $backline);
}
while (count($data['history']) > 0 && $backline > 0) {
[--$backline, array_pop($data['history'])];
}
if (is_numeric($status)) $data['status'] = intval($status);
if (is_numeric($progress)) $progress = str_pad(sprintf("%.2f", $progress), 6, '0', STR_PAD_LEFT);
@ -201,14 +205,15 @@ class QueueService extends Service
* @param integer $total 记录总和
* @param integer $used 当前记录
* @param string $message 文字描述
* @param integer $backline 回退行数
*/
public function message(int $total, int $used, string $message = ''): void
public function message(int $total, int $used, string $message = '', $backline = 0): void
{
$total = $total < 1 ? 1 : $total;
$prefix = str_pad("{$used}", strlen("{$total}"), '0', STR_PAD_LEFT);
$message = "[{$prefix}/{$total}] {$message}";
if (defined('WorkQueueCode')) {
$this->progress(2, $message, sprintf("%.2f", $used / $total * 100));
$this->progress(2, $message, sprintf("%.2f", $used / $total * 100), $backline);
} else {
echo $message . PHP_EOL;
}