'array', 'result_json' => 'array', ]; /** * 更新任务状态 * @param string $status * @param array $data * @return void */ public function updateStatus(string $status, array $data = []): void { $updateData = ['status' => $status]; if (isset($data['result_json'])) { $updateData['result_json'] = $data['result_json']; } if (isset($data['result_url'])) { $updateData['result_url'] = $data['result_url']; } if (isset($data['compressed_url'])) { $updateData['compressed_url'] = $data['compressed_url']; } if (isset($data['last_frame_url'])) { $updateData['last_frame_url'] = $data['last_frame_url']; } if (isset($data['error_message'])) { $updateData['error_message'] = $data['error_message']; } if (isset($data['extra_params'])) { $updateData['extra_params'] = $data['extra_params']; } if ($status === self::STATUS_PROCESSING) { if (isset($data['task_id'])) $updateData['task_id'] = $data['task_id']; if (!$this->started_at) $updateData['started_at'] = now(); } if (in_array($status, [self::STATUS_SUCCESS, self::STATUS_FAILED]) && !$this->completed_at) { $updateData['completed_at'] = now(); } $this->update($updateData); } }