userId = $params['userId']; $this->messageId = $params['messageId']; $this->channel = $params['channel']; } public function handle() { try { $channel = make(ChannelFactory::class)->get($this->channel); $account = aModel::find($this->userId); $message = mModel::find($this->messageId); $channel->send($account, $message); mchModel::query() ->where('message_id', $this->messageId) ->where('account_id', $this->userId) ->where('channel', $this->channel) ->update(['status' => 1]); } catch (\Exception $e) { Log::record("消息投递失败:" . $e->getMessage(), "SendChannelJob"); mchModel::query() ->where('message_id', $this->messageId) ->where('account_id', $this->userId) ->where('channel', $this->channel) ->update(['status' => 2, 'fail_reason' => $e->getMessage()]); } } }