asp.net mvc 設置一個action的訪問人數,達到上線排隊
阿新 • • 發佈:2019-03-08
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的訪問人數,達到上線排隊