1. 程式人生 > >asp.net mvc 設置一個action的訪問人數,達到上線排隊

asp.net mvc 設置一個action的訪問人數,達到上線排隊

scom completed sta listt 完成 異步 lis string let

/// <summary>
        /// 1,對訪問此action的用戶進行異步處理,然後將此異步加入到全局的list當中,
        /// 再等待異步處理完成,如果完成,將此異步操作從全局的list中刪除,給前端返回處理結果
        /// 2,設置全局list要存放的處理人數
        /// 3,如果達到上限,直接給用戶返回請排隊,然後全端排隊等待,等待五分鐘之後接著提交
        /// </summary>
        /// <returns></returns>
        public string Index()
        {
            TaskFactory taskFactory 
= new TaskFactory(); if (EBS.Common.Common.ListTask.Count > 1000) { return "請排隊!"; } Task task = taskFactory.StartNew(() => { //do it Thread.Sleep(1000*60); });
lock (EBS.Common.Common.ListTask) { EBS.Common.Common.ListTask.Add(task); } if (!task.IsCompleted) task.Wait(); lock (EBS.Common.Common.ListTask) { if(EBS.Common.Common.ListTask.Exists(x=>x==task)) EBS.Common.Common.ListTask.Remove(task); }
return "完成!"; }

asp.net mvc 設置一個action的訪問人數,達到上線排隊