業(yè)務的處理方法及裝置的制造方法
【專利說明】
【技術領域】
[0001]本發(fā)明涉及通信技術,尤其涉及一種業(yè)務的處理方法及裝置。
【【背景技術】】
[0002]在利用編程語言例如,Java語言、Go語言等開發(fā)應用的過程中,可以采用垃圾收集(Garbage Collect1n,GC)機制,來控制內(nèi)存的釋放,這樣,極大地減輕了開發(fā)人員手動控制內(nèi)存的釋放的負擔。
[0003]然而,由于采用GC機制對內(nèi)存進行釋放處理時應用不再進行任何業(yè)務處理,因此,可能會造成應用的運行暫停,即應用的響應延遲,例如,幾十毫秒甚至數(shù)秒等,從而導致了應用的吞吐量的降低。
【
【發(fā)明內(nèi)容】
】
[0004]本發(fā)明的多個方面提供一種業(yè)務的處理方法及裝置,用以提高應用的吞吐量。
[0005]本發(fā)明的一方面,提供一種業(yè)務的處理方法,包括:
[0006]創(chuàng)建至少兩個進程;
[0007]獲取所述至少兩個進程中每個進程的至少兩個進程狀態(tài),所述每個進程的至少兩個進程狀態(tài)包括服務狀態(tài)和GC狀態(tài);
[0008]獲取所述至少兩個進程狀態(tài)中每個進程狀態(tài)的停留時間,其中,在任意時刻,所述至少兩個進程中至少一個進程的進程狀態(tài)為所述服務狀態(tài);
[0009]根據(jù)所述每個進程的所述每個進程狀態(tài),在該進程狀態(tài)的停留時間內(nèi),關閉該進程的GC機制,或者開啟該進程的GC機制,以使得利用該進程,基于開啟的GC機制,進行內(nèi)存釋放處理。
[0010]如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述根據(jù)所述每個進程的所述每個進程狀態(tài),在該進程狀態(tài)的停留時間內(nèi),關閉該進程的GC機制或開啟該進程的GC機制,包括:
[0011]若進程的進程狀態(tài)為所述服務狀態(tài),關閉該進程的GC機制;或者
[0012]若進程的進程狀態(tài)為所述GC狀態(tài),開啟該進程的GC機制。
[0013]如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述關閉該進程的GC機制,之前同時或之后,還包括:
[0014]利用該進程,對所屬應用的業(yè)務消息進行處理。
[0015]如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述開啟該進程的GC機制,之前同時或之后,還包括:
[0016]利用該進程,對該進程所占用的內(nèi)存,進行釋放處理。
[0017]如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述每個進程的至少兩個進程狀態(tài)還包括等待狀態(tài)。
[0018]如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述根據(jù)所述每個進程的所述每個進程狀態(tài),在該進程狀態(tài)的停留時間內(nèi),關閉該進程的GC機制,或者開啟該進程的GC機制,以使得利用該進程,基于開啟的GC機制,進行內(nèi)存釋放處理,還包括:
[0019]若進程的進程狀態(tài)為所述等待狀態(tài),利用該進程,利用已經(jīng)建立的通信連接,對所屬應用的業(yè)務消息進行處理。
[0020]本發(fā)明的另一方面,提供一種業(yè)務的處理裝置,包括:
[0021]創(chuàng)建單元,用于創(chuàng)建至少兩個進程;
[0022]狀態(tài)單元,用于獲取所述至少兩個進程中每個進程的至少兩個進程狀態(tài),所述每個進程的至少兩個進程狀態(tài)包括服務狀態(tài)和GC狀態(tài);
[0023]所述狀態(tài)單元,還用于獲取所述至少兩個進程狀態(tài)中每個進程狀態(tài)的停留時間,其中,在任意時刻,所述至少兩個進程中至少一個進程的進程狀態(tài)為所述服務狀態(tài);
[0024]執(zhí)行單元,用于根據(jù)所述每個進程的所述每個進程狀態(tài),在該進程狀態(tài)的停留時間內(nèi),關閉該進程的GC機制,或者開啟該進程的GC機制,以使得利用該進程,基于開啟的GC機制,進行內(nèi)存釋放處理。
[0025]如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述執(zhí)行單元,具體用于
[0026]若進程的進程狀態(tài)為所述服務狀態(tài),關閉該進程的GC機制;或者
[0027]若進程的進程狀態(tài)為所述GC狀態(tài),開啟該進程的GC機制。
[0028]如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述執(zhí)行單元,還用于
[0029]在關閉該進程的GC機制,之前同時或之后,利用該進程,對所屬應用的業(yè)務消息進行處理。
[0030]如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述執(zhí)行單元,還用于
[0031]在開啟該進程的GC機制,之前同時或之后,利用該進程,對該進程所占用的內(nèi)存,進行釋放處理。
[0032]如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述每個進程的至少兩個進程狀態(tài)還包括等待狀態(tài)。
[0033]如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述執(zhí)行單元,還用于
[0034]若進程的進程狀態(tài)為所述等待狀態(tài),利用該進程,利用已經(jīng)建立的通信連接,對所屬應用的業(yè)務消息進行處理。
[0035]由上述技術方案可知,本發(fā)明實施例通過所創(chuàng)建的至少兩個進程,能夠協(xié)同完成應用的業(yè)務消息處理和應用所占用的內(nèi)存的釋放處理,由于在任意時刻,所述至少兩個進程中始終存在至少一個進程的進程狀態(tài)為服務狀態(tài),使得應用不再會存在不進行任何業(yè)務處理的時刻,因此,能夠避免現(xiàn)有技術中由于采用單一進程的GC機制對內(nèi)存進行釋放處理時應用不再進行任何業(yè)務處理而導致的應用的運行暫停的問題,從而提高了應用的吞吐量。
[0036]另外,采用本發(fā)明提供的技術方案,通過預先配置每個進程開始工作的時間,以及每個進程狀態(tài)的停留時間,使得在特定時間范圍之內(nèi),例如,某個進程的進程狀態(tài)由服務狀態(tài)切換到其他狀態(tài)的時刻之前的一段時間范圍之內(nèi),所創(chuàng)建的至少兩個進程中至少還存在另一個進程的進程狀態(tài)為服務狀態(tài),因此,能夠避免由于其中一個進程的進程狀態(tài)由服務狀態(tài)切換到其他狀態(tài)而導致的業(yè)務消息處理失敗的問題,從而提高了應用的業(yè)務處理的可靠性。
【【附圖說明】】
[0037]為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0038]圖1為本發(fā)明一實施例提供的業(yè)務的處理方法的流程示意圖;
[0039]圖2為本發(fā)明另一實施例提供的業(yè)務的處理裝置的結(jié)構(gòu)示意圖;
[0040]圖3為服務狀態(tài)和GC狀態(tài)這兩個進程狀態(tài)的停留時間示意圖;
[0041]圖4為服務狀態(tài)、等待狀態(tài)和GC狀態(tài)這三個進程狀態(tài)的停留時間示意圖。
【【具體實施方式】】
[0042]為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的全部其他實施例,都屬于本發(fā)明保護的范圍。
[0043]需要說明的是,本發(fā)明實施例中所涉及的終端可以包括但不限于手機、個人數(shù)字助理(Personal Digital Assistant,PDA)、無線手持設備、平板電腦(Tablet Computer)、個人電腦(Personal Computer, PC)、MP3播放器、MP4播放器、可穿戴設備(例如,智能眼鏡、智能手表、智能手環(huán)等)等。
[0044]另外,本文中術語“和/或”,僅僅是一種描述關聯(lián)對象的關聯(lián)關系,表示可以存在三種關系,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。另外,本文中字符“/”,一般表示前后關聯(lián)對象是一種“或”的關系。
[0045]圖1為本發(fā)明一實施例提供的業(yè)務的處理方法的流程示意圖,如圖1所示。
[0046]101、創(chuàng)建至少兩個進程。
[0047]可選地,在本實施例的一個可能的實現(xiàn)方式中,在101中,具體可以通過創(chuàng)建多個進程,共享同一個端口。在創(chuàng)建所述至少兩個進程中每個進程的過程中,具體可以根據(jù)配置文件,配置每個進程開始工作的時間,以及每個進程的進程狀態(tài)信息。其中,所述進程狀態(tài)信息,可以包括但不限于進程狀態(tài)及其停留時間。在所述至少兩個進程的創(chuàng)建完成之后,每個進程都進入一個準備狀態(tài)。所謂的準備狀態(tài),是指進程停留在該狀態(tài),不進行任何處理,等待到達開始工作的時間,進入服務狀態(tài)。
[0048]在一個具體的實現(xiàn)過程中,具體可以根據(jù)配置文件,利用有限狀態(tài)機,來配置每個進程開始工作的時間,以及每個進程的進程狀態(tài)信息。
[0049]在另一個具體的實現(xiàn)過程中,每個進程的進程狀態(tài)的切換順序,以及每個狀態(tài)的停留時間,都是一致的。例如,每個進程的進程狀態(tài)的切換順