本發明涉及并發設計領域,更具體地說,本發明涉及一種app并發請求隊列的實現方法。
背景技術:
1、在一個快速發展的網絡平臺上,用戶量不斷增加,用戶體驗變得至關重要,隨著用戶數量的增加,服務器端面臨著越來越多的并發請求,給app帶來了挑戰,在高峰時段大量的并發請求導致服務器過載,造成系統性能下降以及崩潰。
2、目前,app同一時間并發多個請求時,存在超出最大并發數限制,無法對超出并發數的請求進行有效管理,帶來時序紊亂問題,并發多個請求時存在用戶信息過期情況,發送出去的請求就會面臨著請求無效,無法獲取正確的數據,影響用戶體驗。
技術實現思路
1、本發明針對現有技術中存在的技術問題,提供一種app并發請求隊列的實現方法,以解決上述背景技術中提出的問題。
2、本發明解決上述技術問題的技術方案如下:一種app并發請求隊列的實現方法,包括以下步驟:
3、s101.設計隊列管理器類的屬性和方法負責管理全局的請求隊列和控制并發數,app啟動時注冊全局的隊列管理器實例,當屬性為當前并發數達到最大時,將超出當前并發數的請求按照順序依次推入至隊列管理器進行管理;
4、s102.隊列管理器中的請求以先進先出方式進行存儲,檢查判斷當前是否存在可用的并發處理資源,釋放隊列管理器中的請求;
5、s103.隊列管理器釋放請求過程中,循環執行新一輪到達的請求以及釋放請求步驟;
6、s104.服務器接收用戶發出請求進行響應返回并發現用戶信息失效,暫停隊列管理器中的請求出隊操作并保持請求隊列狀態不變,啟動隊列管理器自動刷新用戶信息機制,重新將請求隊列中的請求依次出隊;
7、在一個優選地實施方式中,所述s101中,設計隊列管理器類的屬性和方法負責管理全局的請求隊列和控制并發數,屬性包括最大并發數、當前并發數以及請求隊列,方法包括add_request(request)和process_requests()。
8、進一步地,創建一個新的請求隊列管理器,將屬性為當前并發數的變量初始化為0,利用add_request(request)方法將請求加入到請求隊列中并鎖定資源,通知存在等待處理的線程,處理請求后,減少并記錄屬性為當前并發數的參數值,用于表示該請求已完成。
9、進一步地,app啟動時注冊全局的隊列管理器實例,并利用單例模式確保全局僅存一個隊列管理器對象,調用列隊管理器的add_request(request)方法將新到達的請求加入隊列管理器,根據屬性為當前并發數的情況判斷請求處理方式,當屬性為當前并發數達到最大時,隊列管理器將超出當前并發數的請求按照順序依次推入至隊列管理器進行管理,并控制最大并發數。
10、在一個優選地實施方式中,所述s102中,隊列管理器中的請求以先進先出方式進行存儲,將第一時間到達的請求通過add_request(request)方法加入至隊列管理器尾部,并依次加入隨后到達對的請求并依次存放,直至隊列管理器首部被存放。
11、進一步地,檢查判斷當前是否存在可用的并發處理資源,當存在可用的并發處理資源,則立即開始處理隊列管理器中的請求,并從隊列管理器首部取出請求進行發送處理,當不存在可用的并發處理資源,則等待直到存在并發處理資源可用,移除隊列管理器已處理的請求,當不再有新的請求到達且當前隊列管理器中的所有請求均處理完成時,開始釋放隊列管理器中的請求。
12、在一個優選地實施方式中,所述s103中,隊列管理器釋放請求過程中,將新一輪到達的并發請求推入隊列管理器中,隊列管理器繼續請求的釋放并將新一輪到達切超出屬性為當前并發數的請求依次推入到隊列管理器的首部,循環執行新一輪到達的請求以及釋放請求步驟。
13、在一個優選地實施方式中,所述s104中,調用列隊管理器的add_request(request)方法將新到達的請求加入隊列管理器過程中,服務器接收用戶發出請求進行響應返回并發現用戶信息失效,響應返回的請求無法正常返回數據,發送無法正常返回數據信息通知,隊列管理器接收用戶信息失效信息通知,暫停隊列管理器中的請求出隊操作并保持請求隊列狀態不變,將響應返回的請求重新加入請求隊列并等待處理,啟動隊列管理器自動刷新用戶信息機制,嘗試刷新用戶信息并等待成功通知,重新將請求隊列中的請求依次出隊,并重新向服務器發送請求獲取返回數據。
14、本發明的有益效果是:通過明確定義屬性和方法,使得隊列管理器的功能和作用清晰可見,對隊列管理器類的初始化以及利用單例模式確保全局僅存在一個隊列管理器對象,確保方案的一致性和高效性,根據當前并發數的情況判斷請求的處理方式,保證不同情況下隊列管理器的穩定性和高效性,對超出并發數的請求進行有效管理,降低時序紊亂問題概率,通過請求以先進先出方式進行存儲,確保請求的順序性,避免請求處理的混亂和不確定性,通過檢查判斷當前是否存在可用的并發處理資源,保證請求處理的及時性和有效性,當存在可用并發處理資源時,立即開始處理隊列管理器中的請求,并從隊列管理器首部取出請求進行處理,保證請求的按序處理和方案的高效性,新一輪到達請求的處理保證能夠及時響應新的請求并進行處理,通過屬性判斷和請求推入隊列管理器,有效控制并發數并避免資源的過度占用,通過循環執行,保證動態環境下的穩定性和可靠性,通過描述用戶信息失效的處理流程,保證服務器對用戶信息失效情況的及時響應和處理,暫停隊列管理器中的請求出隊操作,能夠保持原有的請求順序和狀態,通過重新加入響應返回請求,避免因用戶信息失效導致的數據返回失敗。
1.一種app并發請求隊列的實現方法,其特征在于,具體包括以下步驟:
2.根據權利要求1所述的一種app并發請求隊列的實現方法,其特征在于:所述s101中,設計隊列管理器類的屬性和方法負責管理全局的請求隊列和控制并發數,屬性包括最大并發數、當前并發數以及請求隊列,方法包括add_request(request)和process_requests()。
3.根據權利要求2所述的一種app并發請求隊列的實現方法,其特征在于:利用add_request(request)方法將請求加入到請求隊列中并鎖定資源,通知存在等待處理的線程,處理請求后,減少并記錄屬性為當前并發數的參數值,用于表示該請求已完成。
4.根據權利要求2所述的一種app并發請求隊列的實現方法,其特征在于:app啟動時注冊全局的隊列管理器實例,調用列隊管理器的add_request(request)方法將新到達的請求加入隊列管理器,根據屬性為當前并發數的情況判斷請求處理方式,當屬性為當前并發數達到最大時,隊列管理器將超出當前并發數的請求按照順序依次推入至隊列管理器進行管理,并控制最大并發數。
5.根據權利要求1所述的一種app并發請求隊列的實現方法,其特征在于:所述s102中,隊列管理器中的請求以先進先出方式進行存儲,將第一時間到達的請求通過add_request(request)方法加入至隊列管理器尾部,并依次加入隨后到達對的請求并依次存放,直至隊列管理器首部被存放,檢查判斷當前是否存在可用的并發處理資源。
6.根據權利要求5所述的一種app并發請求隊列的實現方法,其特征在于:所述檢查判斷具體步驟為:當存在可用的并發處理資源,則立即開始處理隊列管理器中的請求,并從隊列管理器首部取出請求進行發送處理,當不存在可用的并發處理資源,則等待直到存在并發處理資源可用,移除隊列管理器已處理的請求,當不再有新的請求到達且當前隊列管理器中的所有請求均處理完成時,開始釋放隊列管理器中的請求。
7.根據權利要求1所述的一種app并發請求隊列的實現方法,其特征在于:所述s103中,隊列管理器釋放請求過程中,將新一輪到達的并發請求推入隊列管理器中,隊列管理器繼續請求的釋放并將新一輪到達切超出屬性為當前并發數的請求依次推入到隊列管理器的首部,循環執行新一輪到達的請求以及釋放請求步驟。
8.根據權利要求1所述的一種app并發請求隊列的實現方法,其特征在于:所述s104中,調用列隊管理器的add_request(request)方法將新到達的請求加入隊列管理器過程中,服務器接收用戶發出請求進行響應返回并發現用戶信息失效,發送無法正常返回數據信息通知,隊列管理器接收用戶信息失效信息通知,暫停隊列管理器中的請求出隊操作并保持請求隊列狀態不變,將響應返回的請求重新加入請求隊列并等待處理,啟動隊列管理器自動刷新用戶信息機制,重新將請求隊列中的請求依次出隊,并向服務器發送請求獲取返回數據。