follow_user_data = $follow_user_data; } public function getCorpId() { return $this->follow_user_data['corpid'] ?? null; } /** * Execute the job. * * @return void */ public function handle() { try { $corpId = $this->follow_user_data['corpid']; (new DbService())->getConnectionNameByCorpId($corpId); $contactService = new ContactService(); // 创建任务记录 $this->Records = Records::create([ 'job_id' => $this->follow_user_data['corpid'] . '_FollowUserJobs', 'name' => static::class, 'payload' => json_encode($this->follow_user_data), 'status' => 'processing', 'started_at' => now() ]); $corpid = $this->follow_user_data['corpid']; $external_contact_info = $this->follow_user_data['external_contact_info']; $follow_info = $this->follow_user_data['follow_info']; $result = $contactService->handle_follow_user_info($corpid, $follow_info, $external_contact_info); //删除任务记录 $this->Records->delete(); // 成功处理... } catch (\Exception $e) { // 失败处理... if ($this->Records) { $this->Records->delete(); } // 如果错误信息里面包含字符UNIQUE_(数据唯一)则不写日志 if (stripos($e->getMessage(), 'UNIQUE_') === false) { // 记录错误日志 Log::info('job_error', 'FollowUserJobs任务队列失败', ['data' => $this->follow_user_data, 'error' => $e->getMessage()]); } } } public function failed(\Throwable $exception) { Log::info('job_error', 'FollowUserJobs任务队列彻底失败', ['data' => $this->follow_user_data, 'error' => $exception->getMessage()]); // 只有在Records存在时才删除 if ($this->Records) { $this->Records->delete(); } } }