Ejemplo n.º 1
0
        public async Task <ActionResult> pullRealTimeDataAsync()
        {
            var item = await _db.StockEvents.FirstOrDefaultAsync(s => s.EventName == Constants.EventPullReadTimeData);

            if (item.LastAriseEndDate == null)
            {
                _util.EnquepullRealTimeDataTask();
                return(NoContent());
            }

            if (item.Status == EventStatusEnum.Idle)
            {
                var interval = DateTime.Now.Subtract(item.LastAriseEndDate.Value).TotalSeconds;

                int seconds = _configuration.GetValue <int>("MinimumIntervalForRealTime");

                if (interval > seconds)
                {
                    _timedService.ResetTimerForPullRealTimeData();
                    _util.EnquepullRealTimeDataTask();
                    return(NoContent());
                }
                else
                {
                    string mes = $"两次获取实时数据的时间太近,小于{seconds}秒,请稍后尝试。";
                    return(BadRequest(mes));
                }
            }

            else
            {
                string mes = $"后台任务正在运行,不能授受此命令。";
                return(BadRequest(mes));
            }
        }