欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種服務(wù)的調(diào)用方法和服務(wù)器與流程

文檔序號(hào):11843291閱讀:377來(lái)源:國(guó)知局
一種服務(wù)的調(diào)用方法和服務(wù)器與流程

本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,尤其涉及一種服務(wù)的調(diào)用方法和服務(wù)器。



背景技術(shù):

在配置后臺(tái)的服務(wù)器的網(wǎng)絡(luò)框架時(shí),開(kāi)發(fā)者會(huì)根據(jù)業(yè)務(wù)的類(lèi)型確定一個(gè)網(wǎng)絡(luò)框架,網(wǎng)絡(luò)框架分為多線(xiàn)程或單線(xiàn)程,例如,在應(yīng)對(duì)多客戶(hù)機(jī)的網(wǎng)絡(luò)應(yīng)用中,開(kāi)發(fā)者會(huì)在服務(wù)器使用多線(xiàn)程的網(wǎng)絡(luò)框架。多線(xiàn)程的目的是讓每個(gè)連接都擁有獨(dú)立的線(xiàn)程,防止一個(gè)連接的阻塞而影響其他的連接。在配置服務(wù)器的網(wǎng)絡(luò)框架時(shí)具體使用多線(xiàn)程還是單線(xiàn)程,開(kāi)發(fā)者會(huì)根據(jù)服務(wù)器運(yùn)行的業(yè)務(wù)靈活的選擇其中的一種。

目前這種單一的網(wǎng)絡(luò)框架的服務(wù)器在無(wú)法在處理用戶(hù)的業(yè)務(wù)請(qǐng)求時(shí),無(wú)法根據(jù)業(yè)務(wù)特點(diǎn)來(lái)區(qū)分運(yùn)行,導(dǎo)致服務(wù)器的處理效率低下。同時(shí),服務(wù)器的程序結(jié)構(gòu)單一,功能不清晰,難以維護(hù)。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明實(shí)施例所要解決的技術(shù)問(wèn)題在于,提供一種服務(wù)的調(diào)用方法和服務(wù)器??山鉀Q現(xiàn)有技術(shù)中服務(wù)器的處理效率低和難以維護(hù)的問(wèn)題。

為了解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供了一種服務(wù)的調(diào)用方法,服務(wù)器包括業(yè)務(wù)接口層和功能接口層,所述業(yè)務(wù)接口層采用單線(xiàn)程異步的工作機(jī)制,所述功能接口層采用多線(xiàn)程異步的工作機(jī)制,所述方法包括:

所述服務(wù)器通過(guò)所述業(yè)務(wù)接口層接收業(yè)務(wù)請(qǐng)求;

所述服務(wù)器識(shí)別所述業(yè)務(wù)請(qǐng)求的類(lèi)型;

如果所述業(yè)務(wù)請(qǐng)求為服務(wù)請(qǐng)求,向所述功能接口層發(fā)送功能調(diào)用請(qǐng)求,所述功能調(diào)用請(qǐng)求用于在所述功能接口層中調(diào)用所述業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的至少一個(gè)原子操作;

在所述至少一個(gè)原子操作全部調(diào)用成功之后,向所述業(yè)務(wù)接口層返回調(diào)用 結(jié)果。

相應(yīng)地,本發(fā)明實(shí)施例還提供了一種服務(wù)器,包括:

接收模塊、識(shí)別模塊、調(diào)用模塊和返回模塊,其中,所述接收模塊、所述識(shí)別模塊和所述調(diào)用模塊位于業(yè)務(wù)接口層中,所述返回模塊位于功能接口層中,所述業(yè)務(wù)接口層采用單線(xiàn)程異步的工作機(jī)制,所述功能接口層采用多線(xiàn)程異步的工作機(jī)制;

所述接收模塊,用于通過(guò)所述業(yè)務(wù)接口層接收業(yè)務(wù)請(qǐng)求;

所述識(shí)別模塊,用于識(shí)別所述業(yè)務(wù)請(qǐng)求的類(lèi)型;

所述調(diào)用模塊,用于如果所述業(yè)務(wù)請(qǐng)求為服務(wù)請(qǐng)求,向所述功能接口層發(fā)送功能調(diào)用請(qǐng)求,所述功能調(diào)用請(qǐng)求用于在所述功能接口層中調(diào)用所述業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的至少一個(gè)原子操作;

所述返回模塊,用于在所述至少一個(gè)原子操作全部調(diào)用成功之后,向所述業(yè)務(wù)接口層返回調(diào)用結(jié)果。

實(shí)施本發(fā)明實(shí)施例,具有如下有益效果:

通過(guò)業(yè)務(wù)接口層接收業(yè)務(wù)請(qǐng)求,如果業(yè)務(wù)請(qǐng)求的類(lèi)型為服務(wù)請(qǐng)求,向功能接口層調(diào)用業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的至少一個(gè)原子操作,接收功能接口層返回的調(diào)用接口。這樣通過(guò)對(duì)服務(wù)器的層次的劃分和工作機(jī)制的配置,使服務(wù)器的系統(tǒng)結(jié)構(gòu)清晰,不同類(lèi)型的業(yè)務(wù)請(qǐng)求交給對(duì)應(yīng)的層去處理,優(yōu)化了服務(wù)器的處理效率。

附圖說(shuō)明

為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1是本發(fā)明實(shí)施例提供的一種服務(wù)的調(diào)用方法的流程示意圖;

圖2是本發(fā)明實(shí)施例提供的一種服務(wù)的調(diào)用方法的另一流程示意圖;

圖3是本發(fā)明實(shí)施例提供的一種服務(wù)器的一種網(wǎng)絡(luò)框架的結(jié)構(gòu)示意圖;

圖4是本發(fā)明實(shí)施例提供的一種服務(wù)器的結(jié)構(gòu)示意圖;

圖5是本發(fā)明實(shí)施例提供的一種服務(wù)器的另一結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

在本發(fā)明實(shí)施例中,服務(wù)器用于響應(yīng)前端的業(yè)務(wù)請(qǐng)求,服務(wù)器劃分為3個(gè)層次,業(yè)務(wù)接口層(Service)、功能接口層(Server)和任務(wù)作業(yè)層(Mon),其中業(yè)務(wù)接口層采用單線(xiàn)程異步的工作機(jī)制,功能接口層采用多線(xiàn)程異步的工作機(jī)制,任務(wù)作業(yè)層采用多線(xiàn)程同步的工作機(jī)制。業(yè)務(wù)接口層用于向外部提供事務(wù)性的接口,用戶(hù)可以通過(guò)事務(wù)性的接口調(diào)用功能接口層中的原子操作,功能接口層中包含多個(gè)原子操作,原子操作為服務(wù)器中功能單一的操作,一般為慢速操作,任務(wù)作業(yè)層用于響應(yīng)用戶(hù)觸發(fā)的作業(yè)任務(wù),作業(yè)任務(wù)為一個(gè)非實(shí)時(shí)性的任務(wù),處理過(guò)程需要耗費(fèi)很長(zhǎng)的時(shí)間。通過(guò)對(duì)服務(wù)器的層次的劃分和工作機(jī)制的配置,用作后臺(tái)的服務(wù)器的系統(tǒng)結(jié)構(gòu)清晰,特定的業(yè)務(wù)請(qǐng)求交給對(duì)應(yīng)的層去處理,優(yōu)化了服務(wù)器的處理效率。

參見(jiàn)圖1,為本發(fā)明實(shí)施例提供的一種服務(wù)的調(diào)用方法的流程示意圖,在本發(fā)明實(shí)施例中,所述方法包括:

S101、服務(wù)器通過(guò)業(yè)務(wù)接口層接收業(yè)務(wù)請(qǐng)求。

具體的,用戶(hù)通過(guò)前端系統(tǒng)向服務(wù)器的業(yè)務(wù)接口層發(fā)送業(yè)務(wù)請(qǐng)求,服務(wù)器通過(guò)業(yè)務(wù)接口層接收業(yè)務(wù)請(qǐng)求。業(yè)務(wù)接口層采用單線(xiàn)程異步的工作方式處理業(yè)務(wù)請(qǐng)求,即業(yè)務(wù)接口層采用單線(xiàn)程工作機(jī)制,即業(yè)務(wù)接口層每次只能處理一個(gè)業(yè)務(wù)請(qǐng)求,業(yè)務(wù)接口層每接收到一個(gè)業(yè)務(wù)請(qǐng)求就發(fā)往功能接口層,業(yè)務(wù)接口層同時(shí)又采用異步的工作機(jī)制,即業(yè)務(wù)接口層向功能接口層發(fā)送完功能調(diào)用請(qǐng)求后,又可以重新處理另一個(gè)業(yè)務(wù)請(qǐng)求,并不會(huì)等到功能接口層返回調(diào)用結(jié)果后才開(kāi)始處理另一業(yè)務(wù)請(qǐng)求。其中,另一個(gè)業(yè)務(wù)請(qǐng)求可能來(lái)自同一用戶(hù)的業(yè)務(wù)請(qǐng)求或不同用戶(hù)的業(yè)務(wù)請(qǐng)求。

S102、所述服務(wù)器識(shí)別所述業(yè)務(wù)請(qǐng)求的類(lèi)型。

具體的,業(yè)務(wù)請(qǐng)求中可攜帶表示其類(lèi)型的類(lèi)型字段,服務(wù)器接收到業(yè)務(wù)請(qǐng)求后提取類(lèi)型字段,根據(jù)類(lèi)型字段識(shí)別業(yè)務(wù)請(qǐng)求的類(lèi)型,其中業(yè)務(wù)請(qǐng)求的類(lèi)型根據(jù)執(zhí)行時(shí)間的長(zhǎng)短分為服務(wù)請(qǐng)求和作業(yè)任務(wù),服務(wù)請(qǐng)求的執(zhí)行時(shí)間通常比較 段,作業(yè)任務(wù)的執(zhí)行時(shí)間通常比較長(zhǎng)。例如,獲取用戶(hù)狀態(tài)的業(yè)務(wù)請(qǐng)求為服務(wù)請(qǐng)求,轉(zhuǎn)賬操作的請(qǐng)求為作業(yè)任務(wù),一個(gè)業(yè)務(wù)請(qǐng)求具體屬于服務(wù)請(qǐng)求還是作業(yè)任務(wù)可以預(yù)先根據(jù)執(zhí)行時(shí)間的長(zhǎng)短來(lái)確定。

S103、如果所述業(yè)務(wù)請(qǐng)求為服務(wù)請(qǐng)求,向所述功能接口層發(fā)送功能調(diào)用請(qǐng)求,所述功能調(diào)用請(qǐng)求用于在所述功能接口層中調(diào)用所述服務(wù)請(qǐng)求對(duì)應(yīng)的至少一個(gè)原子操作。

具體的,根據(jù)S102識(shí)別的業(yè)務(wù)請(qǐng)求的類(lèi)型,如果業(yè)務(wù)請(qǐng)求為服務(wù)請(qǐng)求,服務(wù)器的業(yè)務(wù)接口層查詢(xún)業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的至少一個(gè)原子操作,向功能接口層發(fā)送攜帶對(duì)應(yīng)的至少一個(gè)原子操作的函數(shù)名的功能調(diào)用請(qǐng)求,功能接口層接收功能調(diào)用請(qǐng)求,執(zhí)行功能調(diào)用請(qǐng)求中的至少一個(gè)原子操作。功能接口層采用多線(xiàn)程異步的工作機(jī)制處理接收到的功能調(diào)用請(qǐng)求,具體的處理過(guò)程為:

功能接口層包含多個(gè)原子操作,每個(gè)原子操作的功能是單一為解耦的,業(yè)務(wù)接口層采用的單線(xiàn)程異步的工作機(jī)制,這樣會(huì)導(dǎo)致業(yè)務(wù)接口層會(huì)不斷的向功能接口層發(fā)送功能調(diào)用請(qǐng)求,以調(diào)用功能接口層的原子操作,不同的功能調(diào)用請(qǐng)求調(diào)用的原子操作可能會(huì)相同,這樣功能接口層采用多線(xiàn)程的工作機(jī)制才能處理同時(shí)調(diào)用多個(gè)相同的原子操作的要求。功能接口層中的原子操作為慢速的操作,執(zhí)行過(guò)程耗時(shí)非常長(zhǎng),為了減少服務(wù)器的CPU資源的消耗,功能接口層在執(zhí)行原子操作的過(guò)程中利用自身的硬件能力來(lái)執(zhí)行,并不消耗服務(wù)器的CPU資源,只是在開(kāi)始執(zhí)行和結(jié)束原子操作的時(shí)候通知CPU該原子操作的執(zhí)行狀態(tài),因此功能接口層采用的是異步的工作機(jī)制。其中,功能接口層可以采用Leader/Follow的工作機(jī)制來(lái)處理業(yè)務(wù)接口層的功能調(diào)用請(qǐng)求。

S104、在所述至少一個(gè)原子操作全部調(diào)用成功之后,向所述業(yè)務(wù)接口層返回調(diào)用結(jié)果。

具體的,業(yè)務(wù)請(qǐng)求是事務(wù)性的,在業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的至少一個(gè)原子操作全部調(diào)用成功后,功能接口層向業(yè)務(wù)接口層返回調(diào)用結(jié)果,由業(yè)務(wù)接口層向調(diào)用結(jié)果通知給用戶(hù)。

實(shí)施本發(fā)明的實(shí)施例,通過(guò)業(yè)務(wù)接口層接收業(yè)務(wù)請(qǐng)求,如果業(yè)務(wù)請(qǐng)求的類(lèi)型為服務(wù)請(qǐng)求,向功能接口層調(diào)用業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的至少一個(gè)原子操作,接收功能接口層返回的調(diào)用接口。這樣通過(guò)對(duì)服務(wù)器的層次的劃分和工作機(jī)制的配置,使服務(wù)器的系統(tǒng)結(jié)構(gòu)清晰,不同類(lèi)型的業(yè)務(wù)請(qǐng)求交給對(duì)應(yīng)的層去處理,優(yōu)化了 服務(wù)器的處理效率。

參見(jiàn)圖2,為本發(fā)明實(shí)施例提供的一種服務(wù)的調(diào)用方法的另一流程示意圖,在本發(fā)明實(shí)施例中,所述方法包括:

S201、服務(wù)器通過(guò)業(yè)務(wù)接口層接收業(yè)務(wù)請(qǐng)求。

具體的,服務(wù)器包括業(yè)務(wù)接口層、功能接口層和任務(wù)作業(yè)層,每個(gè)層采用不同的工作機(jī)制。服務(wù)器通過(guò)業(yè)務(wù)接口層接收用戶(hù)通過(guò)前端系統(tǒng)發(fā)送的業(yè)務(wù)請(qǐng)求,業(yè)務(wù)接口層用于向外部提供一個(gè)相對(duì)友好的功能接口,用戶(hù)通過(guò)功能接口調(diào)用后臺(tái)服務(wù)器相應(yīng)的功能。業(yè)務(wù)接口層采用單線(xiàn)程異步的工作機(jī)制,具體過(guò)程為:業(yè)務(wù)接口層接收來(lái)自前端系統(tǒng)的大量的業(yè)務(wù)請(qǐng)求,業(yè)務(wù)接口層可以根據(jù)業(yè)務(wù)請(qǐng)求到來(lái)的先后順序每次只處理一個(gè)業(yè)務(wù)請(qǐng)求,即單線(xiàn)程的工作機(jī)制,為了防止業(yè)務(wù)請(qǐng)求在調(diào)用對(duì)應(yīng)的至少一個(gè)原子操作發(fā)生阻塞,業(yè)務(wù)接口層在將業(yè)務(wù)請(qǐng)求轉(zhuǎn)發(fā)到功能接口層或作業(yè)任務(wù)層之后,即可以重新處理另一個(gè)線(xiàn)程,不需要等待上一個(gè)線(xiàn)程的調(diào)用結(jié)果返回,即異步的工作機(jī)制。這樣,在業(yè)務(wù)接口層使用單線(xiàn)程異步的工作機(jī)制可以方式一個(gè)業(yè)務(wù)請(qǐng)求阻塞導(dǎo)致無(wú)法在響應(yīng)新的業(yè)務(wù)請(qǐng)求,提高處理效率。

示例性的,業(yè)務(wù)接口層根據(jù)時(shí)間的先后順序接收到的業(yè)務(wù)請(qǐng)求為operation request1、operation request2、……、operation requestn,業(yè)務(wù)接口層每次只處理一個(gè)業(yè)務(wù)請(qǐng)求,業(yè)務(wù)接口層將operation request1轉(zhuǎn)發(fā)給功能接口層或作業(yè)任務(wù)層之后,就開(kāi)始處理operation request2,將operation request2轉(zhuǎn)發(fā)給功能接口層或作業(yè)任務(wù)層之前,就開(kāi)始處理operation request3,依次類(lèi)推,采用單線(xiàn)程異步的工作機(jī)制處理接收到的業(yè)務(wù)請(qǐng)求,防止阻塞在單一的線(xiàn)程中,提高處理效率。

S202、獲取所述業(yè)務(wù)請(qǐng)求中攜帶的類(lèi)型字段。

具體的,業(yè)務(wù)請(qǐng)求中攜帶類(lèi)型字段,類(lèi)型字段用于表示業(yè)務(wù)請(qǐng)求的類(lèi)型,例如,業(yè)務(wù)請(qǐng)求中攜帶的類(lèi)型字段為:operation request(task),task字段表示業(yè)務(wù)請(qǐng)求為作業(yè)任務(wù),operation request(service),service字段表示業(yè)務(wù)請(qǐng)求為服務(wù)請(qǐng)求。

S203、根據(jù)所述類(lèi)型字段識(shí)別所述業(yè)務(wù)請(qǐng)求的類(lèi)型。

具體的,根據(jù)S202的識(shí)別結(jié)果,如果業(yè)務(wù)請(qǐng)求為服務(wù)請(qǐng)求,執(zhí)行S204,如果業(yè)務(wù)請(qǐng)求為作業(yè)任務(wù),執(zhí)行S205。

S204、向所述功能接口層發(fā)送功能調(diào)用請(qǐng)求,所述功能調(diào)用請(qǐng)求用于在所 述功能接口層中調(diào)用所述服務(wù)請(qǐng)求對(duì)應(yīng)的至少一個(gè)原子操作。

具體的,服務(wù)器預(yù)先提供已封裝的操作函數(shù),不同的操作函數(shù)對(duì)應(yīng)的原子操作是不相同的,用戶(hù)向服務(wù)器發(fā)送業(yè)務(wù)請(qǐng)求即為調(diào)用服務(wù)器的業(yè)務(wù)接口層中提供的操作函數(shù)。服務(wù)器的業(yè)務(wù)接口層查詢(xún)業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的至少一個(gè)原子操作,服務(wù)器的業(yè)務(wù)接口層向業(yè)務(wù)接口層發(fā)送攜帶對(duì)應(yīng)的至少一個(gè)原子操作的函數(shù)名的功能調(diào)用請(qǐng)求。功能接口層采用多線(xiàn)程異步的工作機(jī)制處理業(yè)務(wù)接口層發(fā)送的功能調(diào)用請(qǐng)求,具體的處理過(guò)程為:

功能接口層包含多個(gè)原子操作,每個(gè)原子操作的功能是單一為解耦的,業(yè)務(wù)接口層采用的單線(xiàn)程異步的工作機(jī)制,這樣會(huì)導(dǎo)致業(yè)務(wù)接口層會(huì)不斷的向功能接口層發(fā)送功能調(diào)用請(qǐng)求,以調(diào)用功能接口層的原子操作,不同的功能調(diào)用請(qǐng)求調(diào)用的原子操作可能會(huì)相同,這樣功能接口層采用多線(xiàn)程的工作機(jī)制才能處理同時(shí)調(diào)用多個(gè)相同的原子操作的要求。功能接口層中的原子操作為慢速的操作,執(zhí)行過(guò)程耗時(shí)非常長(zhǎng),為了減少服務(wù)器的CPU資源的消耗,功能接口層在執(zhí)行原子操作的過(guò)程中利用自身的硬件能力來(lái)執(zhí)行,并不消耗服務(wù)器的CPU資源,只是在開(kāi)始執(zhí)行和結(jié)束原子操作的時(shí)候通知CPU該原子操作的執(zhí)行狀態(tài),因此功能接口層采用的是異步的工作機(jī)制。

示例性的,服務(wù)器的業(yè)務(wù)接口層查詢(xún)到operation request1對(duì)應(yīng)的至少一個(gè)原子操作為Server1、Server2和Server3,operation request2對(duì)應(yīng)的至少一個(gè)原子操作為Server1、Server3和Server5,業(yè)務(wù)接口層依次向功能接口層發(fā)送功能調(diào)用請(qǐng)求Function call request1(Server1,Server2,Server3)和Function call request2(Server1,Server3,Server5),可以看出Function call request1和Function call request2均需要調(diào)用原子操作Server1和Server3,這時(shí)功能接口層需要開(kāi)啟多線(xiàn)程的工作機(jī)制。功能接口層中的原子操作一般為慢速操作,例如,大文件的讀寫(xiě)操作、數(shù)據(jù)庫(kù)的讀寫(xiě)操作等,耗時(shí)較長(zhǎng),功能接口層采用異步的方式來(lái)執(zhí)行原子操作,具體為利用功能接口層自身的硬件資源來(lái)執(zhí)行原子操作,不需要調(diào)用服務(wù)器的CPU的資源,功能接口層在開(kāi)始執(zhí)行和結(jié)束執(zhí)行某個(gè)原子操作時(shí),只需要通知CPU,在執(zhí)行結(jié)束后,生成調(diào)用成功或失敗的消息。

S205、將所述業(yè)務(wù)請(qǐng)求寫(xiě)入所述任務(wù)作業(yè)層的任務(wù)表中。

具體的,根據(jù)S202識(shí)別的業(yè)務(wù)請(qǐng)求的類(lèi)型,將業(yè)務(wù)請(qǐng)求寫(xiě)入任務(wù)作業(yè)層的任務(wù)表中,任務(wù)表中存儲(chǔ)的業(yè)務(wù)請(qǐng)求的最大數(shù)量可以根據(jù)處理能力進(jìn)行設(shè)置, 任務(wù)表可以是一個(gè)先進(jìn)先出的隊(duì)列,新到來(lái)的業(yè)務(wù)請(qǐng)求放置在隊(duì)列的尾部,任務(wù)作業(yè)層每次讀取隊(duì)列的頭部的業(yè)務(wù)請(qǐng)求。

S206、當(dāng)滿(mǎn)足所述業(yè)務(wù)請(qǐng)求的執(zhí)行條件時(shí),確定所述業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的至少一個(gè)作業(yè)階段,并控制所述任務(wù)作業(yè)層執(zhí)行所述至少一個(gè)作業(yè)階段。

具體的,可以通過(guò)狀態(tài)值的轉(zhuǎn)換對(duì)任務(wù)表中的業(yè)務(wù)請(qǐng)求進(jìn)行處理,任務(wù)表中的每個(gè)業(yè)務(wù)請(qǐng)求設(shè)置一個(gè)狀態(tài)值,任務(wù)作業(yè)層周期性的讀取任務(wù)表中的業(yè)務(wù)請(qǐng)求的狀態(tài)值,當(dāng)狀態(tài)值符合預(yù)設(shè)值時(shí),確定業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的至少一個(gè)作業(yè)階段,并控制任務(wù)作業(yè)層執(zhí)行所述至少一個(gè)作業(yè)階段。任務(wù)作業(yè)層采用多線(xiàn)程同步的工作機(jī)制來(lái)處理任務(wù)表中的業(yè)務(wù)請(qǐng)求,即同時(shí)可以處理多個(gè)業(yè)務(wù)請(qǐng)求,針對(duì)一個(gè)業(yè)務(wù)請(qǐng)求,該業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的所有的作業(yè)階段均成功執(zhí)行后,向業(yè)務(wù)接口層返回執(zhí)行結(jié)果,由業(yè)務(wù)接口層向用戶(hù)呈現(xiàn)。其中,在執(zhí)行每個(gè)作業(yè)階段的過(guò)程中也會(huì)去調(diào)用功能接口層中的原子操作,調(diào)用的方式操作服務(wù)請(qǐng)求,此處不再贅述。

示例性的,作業(yè)表中最大可存儲(chǔ)100個(gè)業(yè)務(wù)請(qǐng)求,任務(wù)作業(yè)層每間隔1s讀取業(yè)務(wù)請(qǐng)求的狀態(tài)值,如果業(yè)務(wù)請(qǐng)求的狀態(tài)值為1,查詢(xún)業(yè)務(wù)請(qǐng)求的至少一個(gè)作業(yè)階段,業(yè)務(wù)請(qǐng)求為轉(zhuǎn)賬業(yè)務(wù)請(qǐng)求,轉(zhuǎn)賬業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的作業(yè)階段包括:賬號(hào)獲取階段、審核階段、賬戶(hù)余額更新階段,功能接口層依次執(zhí)行上述三個(gè)作業(yè)階段,在所有的作業(yè)階段全部成功執(zhí)行后,向業(yè)務(wù)接口層返回執(zhí)行結(jié)果;如果不是全部成功執(zhí)行,則回滾到轉(zhuǎn)賬操作之前的狀態(tài),通知作業(yè)任務(wù)表的轉(zhuǎn)賬操作的狀態(tài)值變?yōu)?。

S207、所述至少一個(gè)原子操作是否全部調(diào)用成功。

具體的,服務(wù)請(qǐng)求為事務(wù)性的操作,如果至少一個(gè)原子操作全部調(diào)用成功,執(zhí)行S208,否則,執(zhí)行S209。

S208、向所述業(yè)務(wù)接口層返回調(diào)用結(jié)果。

S209、向所述業(yè)務(wù)接口層返回失敗消息。

其中,調(diào)用失敗后,恢復(fù)到調(diào)用至少一個(gè)原子操作之前的狀態(tài)。

實(shí)施本發(fā)明的實(shí)施例,通過(guò)業(yè)務(wù)接口層接收業(yè)務(wù)請(qǐng)求,如果業(yè)務(wù)請(qǐng)求的類(lèi)型為服務(wù)請(qǐng)求,向功能接口層調(diào)用業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的至少一個(gè)原子操作,接收功能接口層返回的調(diào)用接口。這樣通過(guò)對(duì)服務(wù)器的層次的劃分和工作機(jī)制的配置,使服務(wù)器的系統(tǒng)結(jié)構(gòu)清晰,不同類(lèi)型的業(yè)務(wù)請(qǐng)求交給對(duì)應(yīng)的層去處理,優(yōu)化了 服務(wù)器的處理效率。

參見(jiàn)圖3,為本發(fā)明實(shí)施例提供的一種服務(wù)器的網(wǎng)絡(luò)框架的結(jié)構(gòu)示意圖,在本發(fā)明實(shí)施例中,以廣告消息的群發(fā)過(guò)程來(lái)說(shuō)明本發(fā)明實(shí)施例的服務(wù)器的工作原理:

服務(wù)器包括業(yè)務(wù)接口層Service、功能接口層Server和任務(wù)作業(yè)層Mon、業(yè)務(wù)接口層采用單線(xiàn)程異步的工作機(jī)制,功能接口層采用多線(xiàn)程異步的工作機(jī)制,任務(wù)作業(yè)層采用多線(xiàn)程同步的工作機(jī)制。業(yè)務(wù)接口層提供多種操作功能、包括獲取廣告主資料、獲取用戶(hù)標(biāo)簽、獲取群發(fā)素材和定向推廣等,用戶(hù)向業(yè)務(wù)接口層發(fā)送定向推廣的業(yè)務(wù)請(qǐng)求,業(yè)務(wù)接口確定定向推廣為作業(yè)任務(wù),將定向推廣放入到作業(yè)任務(wù)層的作業(yè)表中,作業(yè)任務(wù)表周期性的讀取定向周期性的匹配定向推廣的狀態(tài)值,當(dāng)狀態(tài)值為1時(shí),確定定向推廣對(duì)應(yīng)的作業(yè)階段為預(yù)算計(jì)費(fèi)、審核、通知和發(fā)送4個(gè)作業(yè)階段。在4個(gè)作業(yè)階段全部成功執(zhí)行后,即完成定向推廣的業(yè)務(wù)請(qǐng)求;如果業(yè)務(wù)請(qǐng)求為服務(wù)請(qǐng)求,確定服務(wù)請(qǐng)求對(duì)應(yīng)的至少一個(gè)原子操作,調(diào)用功能接口層中的至少一個(gè)原子操作,在所有的原子操作調(diào)用成功后,向業(yè)務(wù)接口層返回調(diào)用結(jié)果。

參見(jiàn)圖4,為本發(fā)明實(shí)施例提供的一種服務(wù)器的結(jié)構(gòu)示意圖,在本發(fā)明實(shí)施例中,所述服務(wù)器包括接收模塊40、識(shí)別模塊41、調(diào)用模塊42和返回模塊43,其中所述接收模塊40、識(shí)別模塊41和調(diào)用模塊42位于業(yè)務(wù)接口層中,所述業(yè)務(wù)接口層采用單線(xiàn)程異步的工作機(jī)制,所述返回模塊43位于功能接口層中,所述功能接口層采用多線(xiàn)程異步的工作機(jī)制。

接收模塊40,用于通過(guò)所述業(yè)務(wù)接口層接收業(yè)務(wù)請(qǐng)求。

識(shí)別模塊41,用于識(shí)別所述業(yè)務(wù)請(qǐng)求的類(lèi)型。

調(diào)用模塊42,用于如果所述業(yè)務(wù)請(qǐng)求為服務(wù)請(qǐng)求,向所述功能接口層發(fā)送功能調(diào)用請(qǐng)求,所述功能調(diào)用請(qǐng)求用于在所述功能接口層中調(diào)用所述業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的至少一個(gè)原子操作。

返回模塊43,用于在所述至少一個(gè)原子操作全部調(diào)用成功之后,向所述業(yè)務(wù)接口層返回調(diào)用結(jié)果。

本發(fā)明實(shí)施例和方法實(shí)施例一基于同一構(gòu)思,其帶來(lái)的技術(shù)效果也相同,具體過(guò)程請(qǐng)參照方法實(shí)施例一的描述,此處不再贅述。

進(jìn)一步的,參見(jiàn)圖5,為本發(fā)明實(shí)施例提供的一種服務(wù)器的另一結(jié)構(gòu)示意圖, 在本發(fā)明實(shí)施例中,所述服務(wù)器除包括接收模塊40、識(shí)別模塊41、調(diào)用模塊42和返回模塊43之外,還包括:寫(xiě)入模塊44、執(zhí)行模塊45和失敗返回模塊46,其中,所述寫(xiě)入模塊44位于業(yè)務(wù)接口層中,執(zhí)行模塊45位于任務(wù)作業(yè)層中,失敗返回模塊46位于功能接口層中,任務(wù)作業(yè)層采用多線(xiàn)程同步的工作機(jī)制。

寫(xiě)入模塊44,用于如果所述業(yè)務(wù)請(qǐng)求為作業(yè)任務(wù),將所述業(yè)務(wù)請(qǐng)求寫(xiě)入所述任務(wù)作業(yè)層的任務(wù)表中。

執(zhí)行模塊45,用于當(dāng)滿(mǎn)足所述業(yè)務(wù)請(qǐng)求的執(zhí)行條件時(shí),確定所述業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的至少一個(gè)作業(yè)階段,并控制所述任務(wù)作業(yè)層依次執(zhí)行所述至少一個(gè)作業(yè)階段。

失敗返回模塊46,用于如果所述至少一個(gè)原子操作中沒(méi)有全部調(diào)用成功,向所述業(yè)務(wù)接口層返回失敗消息;其中,所述失敗返回模塊位于功能接口層中。

可選的,所述識(shí)別模塊用于獲取所述業(yè)務(wù)請(qǐng)求中攜帶的類(lèi)型字段,根據(jù)所述類(lèi)型字段識(shí)別所述業(yè)務(wù)請(qǐng)求的類(lèi)型。

可選的所述執(zhí)行模塊用于控制所述任務(wù)作業(yè)層根據(jù)預(yù)設(shè)周期讀取所述作業(yè)表中的所述業(yè)務(wù)請(qǐng)求的狀態(tài)值;

如果讀取的狀態(tài)值為預(yù)設(shè)值,確定所述業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的至少一個(gè)作業(yè)階段,并控制所述任務(wù)作業(yè)層依次執(zhí)行所述至少一個(gè)作業(yè)階段。

可選的,所述功能接口層中的原子操作包括:文件讀寫(xiě)操作、數(shù)據(jù)庫(kù)操作和支付操作。

本發(fā)明實(shí)施例和方法實(shí)施例二基于同一構(gòu)思,其帶來(lái)的技術(shù)效果也相同,具體請(qǐng)參照方法實(shí)施例二的描述,此處不再贅述。

本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤(pán)、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory,RAM)等。

以上所揭露的僅為本發(fā)明一種較佳實(shí)施例而已,當(dāng)然不能以此來(lái)限定本發(fā)明之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
锡林郭勒盟| 靖边县| 海宁市| 台中县| 营口市| 广安市| 常山县| 沾化县| 长子县| 丹巴县| 南京市| 汕尾市| 南岸区| 青海省| 永丰县| 海安县| 崇义县| 南部县| 湘潭市| 安徽省| 基隆市| 东安县| 道真| 荣昌县| 台州市| 莒南县| 磐安县| 盐津县| 灯塔市| 北辰区| 吉水县| 抚松县| 华安县| 铁岭县| 灯塔市| 靖远县| 六安市| 福建省| 建宁县| 颍上县| 大渡口区|