Пример #1
0
        public Task Execute(IJobExecutionContext context)
        {
            lock (locker)
            {
                try
                {
                    ApiResult <IEnumerable <SessionResp> > sessions = _sessionService.GetSessions(SessionStatus.进行中);
                    if (sessions.Status != ResultStatus.SUCCESS || sessions.Result.IsNullOrEmpty())
                    {
                        return(Task.CompletedTask);
                    }

                    ApiResult <IEnumerable <SelectSeatTaskResp> > overdueTasks = _selectSeatTaskService.GetOverdueTask(sessions.Result.Select(x => x.SessionId), DateTime.Now.AddMinutes(-5));
                    if (overdueTasks.Status != ResultStatus.SUCCESS || overdueTasks.Result.IsNullOrEmpty())
                    {
                        return(Task.CompletedTask);
                    }

                    foreach (SelectSeatTaskResp task in overdueTasks.Result)
                    {
                        _selectSeatTaskService.SetOverdue(task.SessionId, task.TaskId);
                    }
                }
                catch (Exception ex)
                {
                    _logger.LogError("检查超时定时任务异常", ex);
                }
            }

            return(Task.CompletedTask);
        }