/// <summary> /// 轮询推送消息 /// </summary> /// <param name="processId"></param> /// <param name="ret"></param> /// <returns></returns> public ErrCode SendMsg(long processId, out string ret) { ret = ""; int rows = _pushSendProcessService.UpdateProcessUseStatusByIdAsync(processId, DateTimeHelper.GetNow().AddMinutes(2)).Result; if (rows == 0) { ret = "已被其他机器处理"; return(ErrCode.PermissionDenied); } PushSendProcessDomainModel pushSendProcessDomainModel = _pushSendProcessService.GetProcessByIdAsync(processId).Result; SendProcessDto process = _mapper.Map <SendProcessDto>(pushSendProcessDomainModel); var classify = ClassifyProcess(process); try { bool flag = false; switch (classify) { case 1: flag = _timeOutHandler.Handle(process, out ret); break; case 2: flag = _retryTimesOverHandler.Handle(process, out ret); break; case 3: flag = _sendHandler.Handle(process, out ret); break; default: ret = "该分类处理没有实现"; break; } if (!flag) { return(ErrCode.Failure); } } catch (Exception ex) { //LogHelper.Error.Write("SendProcess", ex); ret = ex.StackTrace + "\r\n" + ex.Message; return(ErrCode.Failure); } return(ErrCode.Sucess); }