queue = QueueService::instance(); $this->process = ProcessService::instance(); if (defined('WorkQueueCode') && $this->queue->code !== WorkQueueCode) { $this->queue->initialize(WorkQueueCode); } return $this; } /** * 设置失败消息并结束进程 * @param string $message 消息内容 * @throws \think\admin\Exception */ protected function setQueueError(string $message) { if (defined('WorkQueueCode')) { $this->queue->error($message); } else { $this->process->message($message); exit(0); } } /** * 设置成功消息并结束进程 * @param string $message 消息内容 * @throws \think\admin\Exception */ protected function setQueueSuccess(string $message) { if (defined('WorkQueueCode')) { $this->queue->success($message); } else { $this->process->message($message); exit(0); } } /** * 设置进度消息并继续执行 * @param null|string $message 进度消息 * @param null|string $progress 进度数值 * @param integer $backline 回退行数 * @return static * @throws \think\admin\Exception */ protected function setQueueProgress(?string $message = null, ?string $progress = null, int $backline = 0): Command { if (defined('WorkQueueCode')) { $this->queue->progress(2, $message, $progress, $backline); } elseif (is_string($message)) { $this->process->message($message, $backline); } return $this; } /** * 更新任务进度 * @param integer $total 记录总和 * @param integer $count 当前记录 * @param string $message 文字描述 * @param integer $backline 回退行数 * @return static * @throws \think\admin\Exception */ public function setQueueMessage(int $total, int $count, string $message = '', int $backline = 0): Command { $this->queue->message($total, $count, $message, $backline); return $this; } }