queue = QueueService::instance(); $this->process = ProcessService::instance(); } /** * 设置当前任务进度 * @param null|integer $status 任务状态 * @param null|string $message 进度消息 * @param null|integer $progress 进度数值 * @return Command * @throws Exception * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ protected function setQueueProgress($status = null, $message = null, $progress = null) { if (defined('WorkQueueCode')) { if (!$this->queue instanceof QueueService) { $this->queue = QueueService::instance(); } if ($this->queue->code !== WorkQueueCode) { $this->queue->initialize(WorkQueueCode); } $this->queue->progress($status, $message, $progress); } elseif (is_string($message)) { $this->output->writeln($message); } return $this; } /** * 结束任务并设置状态消息 * @param integer $status 任务状态 * @param string $message 消息内容 * @return Command * @throws Exception */ protected function setQueueMessage($status, $message) { if (defined('WorkQueueCode')) { throw new Exception($message, $status, WorkQueueCode); } elseif (is_string($message)) { $this->output->writeln($message); } return $this; } /** * 设置成功的消息 * @param string $message 消息内容 * @return Command * @throws Exception */ protected function setQueueSuccessMessage($message) { return $this->setQueueMessage(3, $message); } /** * 设置失败的消息 * @param string $message 消息内容 * @return Command * @throws Exception */ protected function setQueueErrorMessage($message) { return $this->setQueueMessage(4, $message); } }