本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其是涉及一種高可用高負載的工單處理系統(tǒng)及工單處理方法。
背景技術(shù):
物聯(lián)網(wǎng)是新一代信息技術(shù)的重要組成部分,也是“信息化”時代的重要發(fā)展階段。物聯(lián)網(wǎng)通過智能感知、識別技術(shù)與普適計算等通信感知技術(shù),廣泛應(yīng)用于網(wǎng)絡(luò)的融合中,也因此被稱為繼計算機、互聯(lián)網(wǎng)之后世界信息產(chǎn)業(yè)發(fā)展的第三次浪潮。
隨著科技的發(fā)展,物聯(lián)網(wǎng)正逐漸覆蓋人們生產(chǎn)生活的各個方面,同時物聯(lián)網(wǎng)通過智能檢測設(shè)備搜集了大量的數(shù)據(jù)。當(dāng)用戶想獲取物聯(lián)網(wǎng)中搜集的指定數(shù)據(jù)時,會通過互聯(lián)網(wǎng)提交一個獲取指定數(shù)據(jù)的工單,例如用戶提交的工單為:獲取某空氣監(jiān)測器某段時間內(nèi)的監(jiān)測數(shù)據(jù)。對于用戶提交的各個工單,現(xiàn)有技術(shù)通常采用一個處理服務(wù)器完成接收工單、處理工單和下發(fā)處理結(jié)果給用戶等所有工作。
現(xiàn)有技術(shù)中,由于一個處理服務(wù)器要完成所有工作,當(dāng)接收的工單數(shù)量較多時,該處理服務(wù)器無法及時處理多個工單,因此處理效率低;由于處理的流水線較長,一個處理服務(wù)器很容易出現(xiàn)單點故障,因此可用性差、穩(wěn)定性差。因此,現(xiàn)有技術(shù)中處理工單時存在處理能力差和穩(wěn)定性差的問題。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種高可用高負載的工單處理系統(tǒng)及工單處理方法,以解決現(xiàn)有技術(shù)中處理工單時存在處理能力差和穩(wěn)定性差的技術(shù)問題。
第一方面,本發(fā)明實施例提供了一種高可用高負載的工單處理系統(tǒng),包括:工單分配設(shè)備、結(jié)果分配設(shè)備、多個工單處理設(shè)備和多個結(jié)果存儲設(shè)備;所述工單分配設(shè)備,用于獲取待分配的工單,在所述多個工單處理設(shè)備中確定處理所述工單的工單處理設(shè)備,將所述工單發(fā)送至確定的所述工單處理設(shè)備;所述工單處理設(shè)備,用于在接收到所述工單后,處理所述工單,將處理結(jié)果發(fā)送至所述結(jié)果分配設(shè)備;所述結(jié)果分配設(shè)備,用于接收所述處理結(jié)果,在所述多個結(jié)果存儲設(shè)備中確定存儲所述處理結(jié)果的結(jié)果存儲設(shè)備,將所述處理結(jié)果發(fā)送至確定的所述結(jié)果存儲設(shè)備;所述結(jié)果存儲設(shè)備,用于在接收到所述處理結(jié)果后,存儲所述處理結(jié)果。
結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第一種可能的實施方式,其中,所述工單分配設(shè)備具體用于:判斷所述多個工單處理設(shè)備中是否存在cpu(centralprocessingunit,中央處理器)占用率小于等于預(yù)設(shè)cpu閾值,且內(nèi)存占用率小于等于預(yù)設(shè)內(nèi)存閾值的第一目標設(shè)備;若存在,則將能夠在最短時間內(nèi)處理完成一個正在處理的工單的第一目標設(shè)備,確定為處理所述工單的工單處理設(shè)備;若不存在,則確定每個所述工單處理設(shè)備的待處理工單的數(shù)量,根據(jù)所述待處理工單的數(shù)量,確定處理所述工單的工單處理設(shè)備。
結(jié)合第一方面的第一種可能的實施方式,本發(fā)明實施例提供了第一方面的第二種可能的實施方式,其中,所述工單分配設(shè)備具體用于:根據(jù)每個所述第一目標設(shè)備的工單處理速度和每個所述第一目標設(shè)備正在處理的工單的任務(wù)量,確定每個所述第一目標設(shè)備分別處理完成正在處理的每個工單所用的時間;根據(jù)所述時間確定能夠在最短時間內(nèi)處理完成一個正在處理的工單的第一目標設(shè)備。
結(jié)合第一方面的第一種或者第二種可能的實施方式,本發(fā)明實施例提供了第一方面的第三種可能的實施方式,其中,所述工單分配設(shè)備具體用于:判斷是否存在所述待處理工單的數(shù)量小于數(shù)量閾值的第二目標設(shè)備;若存在,則將所述待處理工單的數(shù)量最少的第二目標設(shè)備,確定為處理所述工單的工單處理設(shè)備。
結(jié)合第一方面的第三種可能的實施方式,本發(fā)明實施例提供了第一方面的第四種可能的實施方式,其中,所述工單分配設(shè)備還用于:若不存在所述待處理工單的數(shù)量小于數(shù)量閾值的第二目標設(shè)備,則發(fā)出資源不足的警報信息。
結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第五種可能的實施方式,其中,所述結(jié)果分配設(shè)備具體用于:在所述多個結(jié)果存儲設(shè)備中確定網(wǎng)絡(luò)帶寬占用率小于預(yù)設(shè)帶寬閾值,且可用存儲空間小于預(yù)設(shè)存儲空間的結(jié)果存儲設(shè)備,為存儲所述處理結(jié)果的結(jié)果存儲設(shè)備。
結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第六種可能的實施方式,其中,所述系統(tǒng)還包括多個工單接收設(shè)備;所述工單接收設(shè)備,用于接收用戶提交的工單并發(fā)送至所述工單分配設(shè)備;
所述結(jié)果存儲設(shè)備還用于:當(dāng)獲取到結(jié)果調(diào)用請求時,確定所述結(jié)果調(diào)用請求對應(yīng)的處理結(jié)果,并將所述處理結(jié)果發(fā)送出去。
第二方面,本發(fā)明實施例還提供一種工單處理方法,所述方法應(yīng)用在如第一方面所述的高可用高負載的工單處理系統(tǒng)上;所述系統(tǒng)包括工單分配設(shè)備、結(jié)果分配設(shè)備、多個工單處理設(shè)備和多個結(jié)果存儲設(shè)備;所述方法包括:
所述工單分配設(shè)備獲取待分配的工單,在所述多個工單處理設(shè)備中確定處理所述工單的工單處理設(shè)備,將所述工單發(fā)送至確定的所述工單處理設(shè)備;所述工單處理設(shè)備在接收到所述工單后,處理所述工單,將處理結(jié)果發(fā)送至所述結(jié)果分配設(shè)備;所述結(jié)果分配設(shè)備接收所述處理結(jié)果,在所述多個結(jié)果存儲設(shè)備中確定存儲所述處理結(jié)果的結(jié)果存儲設(shè)備,將所述處理結(jié)果發(fā)送至確定的所述結(jié)果存儲設(shè)備;所述結(jié)果存儲設(shè)備在接收到所述處理結(jié)果后,存儲所述處理結(jié)果。
結(jié)合第二方面,本發(fā)明實施例提供了第二方面的第一種可能的實施方式,其中,在所述多個工單處理設(shè)備中,確定處理所述工單的工單處理設(shè)備,包括:判斷所述多個工單處理設(shè)備中是否存在cpu占用率小于等于預(yù)設(shè)cpu閾值,且內(nèi)存占用率小于等于預(yù)設(shè)內(nèi)存閾值的第一目標設(shè)備;若存在,則將能夠在最短時間內(nèi)處理完成一個正在處理的工單的第一目標設(shè)備,確定為處理所述工單的工單處理設(shè)備;若不存在,則確定每個所述工單處理設(shè)備的待處理工單的數(shù)量,根據(jù)所述待處理工單的數(shù)量,確定處理所述工單的工單處理設(shè)備。
結(jié)合第二方面的第一種可能的實施方式,本發(fā)明實施例提供了第二方面的第二種可能的實施方式,其中,所述方法還包括:所述工單分配設(shè)備根據(jù)每個所述第一目標設(shè)備的工單處理速度和每個所述第一目標設(shè)備正在處理的工單的任務(wù)量,確定每個所述第一目標設(shè)備分別處理完成正在處理的每個工單所用的時間;所述工單分配設(shè)備根據(jù)所述時間,確定能夠在最短時間內(nèi)處理完成一個正在處理的工單的第一目標設(shè)備。
本發(fā)明實施例帶來了以下有益效果:
本發(fā)明實施例中,高可用高負載的工單處理系統(tǒng)包括:工單分配設(shè)備、結(jié)果分配設(shè)備、多個工單處理設(shè)備和多個結(jié)果存儲設(shè)備。工單分配設(shè)備用于獲取待分配的工單,在多個工單處理設(shè)備中確定處理該工單的工單處理設(shè)備,將該工單發(fā)送至確定的工單處理設(shè)備;工單處理設(shè)備,用于在接收到工單后,處理該工單,將處理結(jié)果發(fā)送至結(jié)果分配設(shè)備;結(jié)果分配設(shè)備,用于接收處理結(jié)果,在多個結(jié)果存儲設(shè)備中確定存儲該處理結(jié)果的結(jié)果存儲設(shè)備,將該處理結(jié)果發(fā)送至確定的結(jié)果存儲設(shè)備;結(jié)果存儲設(shè)備,用于在接收到處理結(jié)果后,存儲該處理結(jié)果。本發(fā)明實施例采用分布式的高可用高負載的工單處理系統(tǒng),多個設(shè)備分別負責(zé)工單的分配和處理,以及處理結(jié)果的分配和存儲等不同的工作,因此當(dāng)接收的工單數(shù)量較多時,多個工單處理設(shè)備均可以及時處理多個工單,多個結(jié)果存儲設(shè)備可以及時存儲多個處理結(jié)果,以供用戶查看或者下載,從而提高了處理效率;由于該工單處理系統(tǒng)包括多個工單處理設(shè)備和多個結(jié)果存儲設(shè)備,因此當(dāng)其中任一個設(shè)備出故障時,不會影響整個系統(tǒng)的正常運行,從而可以避免單點故障問題的發(fā)生,可用性強、穩(wěn)定性好。因此,本發(fā)明實施例提供的高可用高負載的工單處理系統(tǒng)及工單處理方法具有高負載、高可用和高效率的優(yōu)點,解決了現(xiàn)有技術(shù)中處理工單時存在處理能力差和穩(wěn)定性差的技術(shù)問題。
本發(fā)明的其他特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細說明如下。
附圖說明
為了更清楚地說明本發(fā)明具體實施方式或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對具體實施方式或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施方式,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例一提供的高可用高負載的工單處理系統(tǒng)的結(jié)構(gòu)示意圖;
圖2為本發(fā)明實施例一提供的高可用高負載的工單處理系統(tǒng)的第一種工作流程示意圖;
圖3為本發(fā)明實施例一提供的高可用高負載的工單處理系統(tǒng)中分配工單的流程示意圖;
圖4為本發(fā)明實施例一提供的高可用高負載的工單處理系統(tǒng)的第二種工作流程示意圖;
圖5為本發(fā)明實施例二提供的工單處理方法的流程示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
現(xiàn)有技術(shù)中,由于一個處理服務(wù)器要完成所有工作,當(dāng)接收的工單數(shù)量較多時,該處理服務(wù)器無法及時處理多個工單,因此處理效率低;由于處理的流水線較長,一個處理服務(wù)器很容易出現(xiàn)單點故障,因此可用性差、穩(wěn)定性差。基于此,本發(fā)明實施例提供的一種高可用高負載的工單處理系統(tǒng)及工單處理方法,可以解決現(xiàn)有技術(shù)中處理工單時存在處理能力差和穩(wěn)定性差的技術(shù)問題。
為便于對本實施例進行理解,首先對本發(fā)明實施例所公開的一種高可用高負載的工單處理系統(tǒng)進行詳細介紹。
實施例一:
隨著經(jīng)濟、科技的發(fā)展,互聯(lián)網(wǎng)在人們的生活、工作中扮演著越來越重要的角色,由于互聯(lián)網(wǎng)的便利性,人們越來越依賴從互聯(lián)網(wǎng)獲取各種信息。通常用戶想獲取特定信息時會通過互聯(lián)網(wǎng)提交相關(guān)的工單,例如,當(dāng)用戶想查看某空氣監(jiān)測器一段時間內(nèi)的檢測數(shù)據(jù)時,可以提交一個數(shù)據(jù)獲取任務(wù)的工單,該工單包括:用戶標識、該空氣監(jiān)測器的標識(如編號)、時間范圍、任務(wù)類型為數(shù)據(jù)獲取請求等。又如,當(dāng)用戶想控制多臺空氣凈化器關(guān)閉時,可以提交一個關(guān)閉任務(wù)的工單,該工單包括:用戶標識、待關(guān)閉的空氣凈化器的標識(如編號)、任務(wù)類型為關(guān)閉請求等。網(wǎng)絡(luò)服務(wù)器會對用戶提交的工單進行處理,并反饋處理結(jié)果給用戶查看。
用戶可以通過在網(wǎng)頁界面上填寫表單提交工單,例如通過saas(software-as-a-service,軟件即服務(wù))平臺界面提交工單,也可以通過api(applicationprogramminginterface,應(yīng)用程序編程接口)請求提交工單,例如通過restful(representationalstatetransfer)軟件提交工單。其中,api請求提交方式可以方便用戶通過命令行或編程語言進行工單的快速提交,并可對返回結(jié)果再次使用。
為了較好地應(yīng)對saas平臺復(fù)雜多樣的工單類型,或者大計算量的工單,本發(fā)明實施例提供了一種分布式的高可用高負載的工單處理系統(tǒng),該工單處理系統(tǒng)將工單處理流程拆分成工單接收、工單分配、工單處理、結(jié)果交付等多個部分,每個部分的職能可以分別指定給不同的一臺或多臺服務(wù)器來執(zhí)行,這樣既實現(xiàn)了工單處理系統(tǒng)的高可用性,又增強了工單處理系統(tǒng)的負載能力。該工單處理系統(tǒng)可以采用同步處理方式,也可以采用異步處理方式。同步處理方式,用戶需要持續(xù)等待工單處理結(jié)果,一旦意外斷開連接,提交的工單會自動取消,給用戶帶來諸多不便。因此該工單處理系統(tǒng)優(yōu)選采用異步處理方式,這樣用戶提交工單后不需要持續(xù)等待工單處理結(jié)果,當(dāng)該系統(tǒng)將工單處理完成后可以以短信、微信消息、郵件等方式通知用戶查看處理結(jié)果,具體的通知方式這里不作限制。
接收到的工單需要先經(jīng)過工單分配設(shè)備分配至工單處理設(shè)備,尚未分配的工單稱為待分配的工單。圖1為本發(fā)明實施例一提供的高可用高負載的工單處理系統(tǒng)的結(jié)構(gòu)示意圖,如圖1所示,該工單處理系統(tǒng)包括:工單分配設(shè)備20、結(jié)果分配設(shè)備40、多個工單處理設(shè)備30和多個結(jié)果存儲設(shè)備50。
工單分配設(shè)備20,用于獲取待分配的工單,在多個工單處理設(shè)備30中確定處理該工單的工單處理設(shè)備30,將該工單發(fā)送至確定的工單處理設(shè)備30;工單處理設(shè)備30,用于在接收到工單后,處理該工單,將處理結(jié)果發(fā)送至結(jié)果分配設(shè)備40;結(jié)果分配設(shè)備40,用于接收處理結(jié)果,在多個結(jié)果存儲設(shè)備50中確定存儲該處理結(jié)果的結(jié)果存儲設(shè)備50,將該處理結(jié)果發(fā)送至確定的結(jié)果存儲設(shè)備50;結(jié)果存儲設(shè)備50,用于在接收到處理結(jié)果后,存儲該處理結(jié)果。
其中,工單分配設(shè)備20可以直接接收用戶提交的工單,也可以接收其他設(shè)備發(fā)送的工單。優(yōu)選地,如圖1所示,該工單處理系統(tǒng)還包括多個工單接收設(shè)備10,各個工單接收設(shè)備10接收用戶提交的工單并統(tǒng)一發(fā)送至工單分配設(shè)備20。工單分配設(shè)備20用于接收各個工單接收設(shè)備10發(fā)送的各個工單,并將各個工單分配給各個工單處理設(shè)備30。
具體地,各個工單接收設(shè)備10負載均衡響應(yīng)用戶提交的工單是否成功,可以但不限于支持網(wǎng)頁界面填寫表單提交和api請求兩種提交方式。采用多個工單接收設(shè)備10負責(zé)工單處理流程的工單接收部分,可以增強工單接收的處理能力,快速響應(yīng)用戶的工單處理請求,另外其中任一個工單接收設(shè)備10出故障時,不會影響整個工單處理系統(tǒng)的正常運行,從而可以避免單點故障問題的發(fā)生。
工單分配設(shè)備20具體采用以下方法分配工單:判斷多個工單處理設(shè)備30中是否存在cpu(centralprocessingunit,中央處理器)占用率小于等于預(yù)設(shè)cpu閾值,且內(nèi)存占用率小于等于預(yù)設(shè)內(nèi)存閾值的第一目標設(shè)備;若存在,則將能夠在最短時間內(nèi)處理完成一個正在處理的工單的第一目標設(shè)備,確定為處理上述待分配的工單的工單處理設(shè)備30;若不存在,則確定每個工單處理設(shè)備30的待處理工單的數(shù)量,根據(jù)待處理工單的數(shù)量,確定處理該工單的工單處理設(shè)備30。
進一步地,當(dāng)存在第一目標設(shè)備時,工單分配設(shè)備20具體用于:
根據(jù)每個第一目標設(shè)備的工單處理速度和每個第一目標設(shè)備正在處理的工單的任務(wù)量,確定每個第一目標設(shè)備分別處理完成正在處理的每個工單所用的時間,根據(jù)該時間確定能夠在最短時間內(nèi)處理完成一個正在處理的工單的第一目標設(shè)備。
進一步地,當(dāng)不存在第一目標設(shè)備時,工單分配設(shè)備20具體用于:
判斷是否存在待處理工單的數(shù)量小于數(shù)量閾值的第二目標設(shè)備;若存在,則將待處理工單的數(shù)量最少的第二目標設(shè)備,確定為處理上述待分配的工單的工單處理設(shè)備30;若不存在,則暫不分配該工單。
進一步地,當(dāng)不存在待處理工單的數(shù)量小于數(shù)量閾值的第二目標設(shè)備時,工單分配設(shè)備20還用于則發(fā)出資源不足的警報信息。例如可以但不限于采用語音、燈光、信息顯示等方式向服務(wù)器管理員發(fā)出警報,通知服務(wù)器管理員增加工單處理設(shè)備30的數(shù)量,以緩解工單處理壓力。
優(yōu)選地,工單處理設(shè)備30接收到工單分配設(shè)備20分配的工單后,采用并行處理方法同時對多個工單進行處理,這樣可以充分利用計算資源、提升處理能力、節(jié)省處理時間。需要說明的是,此處對工單處理設(shè)備30所采用的并行處理方法的具體處理方式不作限制,例如可以采用多線程方式、多進程方式、單進程多線程方式、單線程多進程方式、多進程多線程方式中的任一種方式。當(dāng)工單處理完成后工單處理設(shè)備30會將該工單的處理狀態(tài)更改為已完成,并通過通信設(shè)備通知用戶。各個工單處理設(shè)備30將各個工單的處理結(jié)果統(tǒng)一發(fā)送至結(jié)果分配設(shè)備40。
進一步地,當(dāng)工單處理設(shè)備30發(fā)生故障或者出現(xiàn)斷電等異常情況時,受到影響的工單處理設(shè)備30會將未處理完成的所有工單作為待分配的工單返回給工單分配設(shè)備20,由工單分配設(shè)備20重新分配給正常工作的工單處理設(shè)備30。這樣可以避免單點故障問題的發(fā)生。
具體地,結(jié)果分配設(shè)備40采用以下方法將接收的處理結(jié)果分配給結(jié)果存儲設(shè)備50:在多個結(jié)果存儲設(shè)備50中確定網(wǎng)絡(luò)帶寬占用率小于預(yù)設(shè)帶寬閾值,且可用存儲空間小于預(yù)設(shè)存儲空間的結(jié)果存儲設(shè)備50,為存儲處理結(jié)果的結(jié)果存儲設(shè)備50。其中,預(yù)設(shè)帶寬閾值和預(yù)設(shè)存儲空間可以根據(jù)實際情況設(shè)置。
結(jié)果存儲設(shè)備50接收到結(jié)果分配設(shè)備40發(fā)送的處理結(jié)果后,存儲該處理結(jié)果,并將該處理結(jié)果分發(fā)至其他各個結(jié)果存儲設(shè)備50。結(jié)果存儲設(shè)備50可以利用cdn(contentdeliverynetwork,即內(nèi)容分發(fā)網(wǎng)絡(luò))系統(tǒng)進行快速、穩(wěn)定地傳輸處理結(jié)果給其他各個結(jié)果存儲設(shè)備50。cdn系統(tǒng)能夠?qū)崟r地根據(jù)網(wǎng)絡(luò)流量和各節(jié)點的連接、負載狀況以及到用戶的距離和響應(yīng)時間等綜合信息將用戶的請求重新導(dǎo)向離用戶最近的服務(wù)節(jié)點上,使用戶可就近取得所需內(nèi)容,解決網(wǎng)絡(luò)擁擠的狀況,提高用戶訪問網(wǎng)站的響應(yīng)速度。
結(jié)果存儲設(shè)備50還用于當(dāng)獲取到結(jié)果調(diào)用請求時,確定該結(jié)果調(diào)用請求對應(yīng)的處理結(jié)果,并將該處理結(jié)果發(fā)送出去。例如,用戶發(fā)送結(jié)果查看請求至該工單處理系統(tǒng)的總服務(wù)器,總服務(wù)器根據(jù)該用戶的位置,確定距離該用戶最近的多個結(jié)果存儲設(shè)備50中響應(yīng)速度最快的結(jié)果存儲設(shè)備50,并向該結(jié)果存儲設(shè)備50發(fā)送結(jié)果調(diào)用請求;該結(jié)果存儲設(shè)備50將該結(jié)果調(diào)用請求對應(yīng)的處理結(jié)果發(fā)送給總服務(wù)器,再由總服務(wù)器發(fā)送給用戶,或者該結(jié)果存儲設(shè)備50根據(jù)該結(jié)果調(diào)用請求直接將該處理結(jié)果發(fā)送給用戶。
若用戶提交的工單為數(shù)據(jù)導(dǎo)出工單,則結(jié)果存儲設(shè)備50發(fā)送導(dǎo)出的數(shù)據(jù)給用戶。由于用戶下載處理結(jié)果的設(shè)備與處理工單的設(shè)備不是同一個,因此用戶下載時所占用的服務(wù)器帶寬、計算資源不會影響處理工單的設(shè)備,提高了該工單處理系統(tǒng)的處理效率。
本發(fā)明實施例中,高可用高負載的工單處理系統(tǒng)包括:工單分配設(shè)備、結(jié)果分配設(shè)備、多個工單處理設(shè)備和多個結(jié)果存儲設(shè)備。工單分配設(shè)備用于獲取待分配的工單,在多個工單處理設(shè)備中確定處理該工單的工單處理設(shè)備,將該工單發(fā)送至確定的工單處理設(shè)備;工單處理設(shè)備,用于在接收到工單后,處理該工單,將處理結(jié)果發(fā)送至結(jié)果分配設(shè)備;結(jié)果分配設(shè)備,用于接收處理結(jié)果,在多個結(jié)果存儲設(shè)備中確定存儲該處理結(jié)果的結(jié)果存儲設(shè)備,將該處理結(jié)果發(fā)送至確定的結(jié)果存儲設(shè)備;結(jié)果存儲設(shè)備,用于在接收到處理結(jié)果后,存儲該處理結(jié)果。本發(fā)明實施例采用分布式的高可用高負載的工單處理系統(tǒng),多個設(shè)備分別負責(zé)工單的分配和處理,以及處理結(jié)果的分配和存儲等不同的工作,因此當(dāng)接收的工單數(shù)量較多時,多個工單處理設(shè)備均可以及時處理多個工單,多個結(jié)果存儲設(shè)備可以及時存儲多個處理結(jié)果,以供用戶查看或者下載,從而提高了處理效率;由于該工單處理系統(tǒng)包括多個工單處理設(shè)備和多個結(jié)果存儲設(shè)備,因此當(dāng)其中任一個設(shè)備出故障時,不會影響整個系統(tǒng)的正常運行,從而可以避免單點故障問題的發(fā)生,可用性強、穩(wěn)定性好。因此,本發(fā)明實施例提供的高可用高負載的工單處理系統(tǒng)具有高負載、高可用和高效率的優(yōu)點,解決了現(xiàn)有技術(shù)中處理工單時存在處理能力差和穩(wěn)定性差的技術(shù)問題。
圖2為本發(fā)明實施例一提供的高可用高負載的工單處理系統(tǒng)的第一種工作流程示意圖,如圖2所示,該工單處理系統(tǒng)的第一種工作流程如下:
步驟s101,工單接收設(shè)備10接收用戶提交的工單。
多個工單接收設(shè)備10負載均衡響應(yīng)用戶提交的工單,并將接收的工單統(tǒng)一發(fā)送至工單分配設(shè)備20。
步驟s102,工單分配設(shè)備20分配工單。
工單分配設(shè)備20確定處理工單的工單處理設(shè)備30,將該工單分配給該工單處理設(shè)備30。
步驟s103,工單處理設(shè)備30處理工單。
工單處理設(shè)備30處理接收的工單,并將處理結(jié)果發(fā)送至結(jié)果分配設(shè)備40。
步驟s104,結(jié)果分配設(shè)備40分配工單的處理結(jié)果。
結(jié)果分配設(shè)備40將接收的各個工單的處理結(jié)果分配給各個結(jié)果存儲設(shè)備50。
步驟s105,結(jié)果存儲設(shè)備50存儲工單的處理結(jié)果,并交付給用戶。
圖3為本發(fā)明實施例一提供的高可用高負載的工單處理系統(tǒng)中分配工單的流程示意圖,如圖3所示,以分配工單a為例,步驟s102中確定處理工單a的工單處理設(shè)備30具體包括以下幾個步驟:
步驟s210,判斷是否存在第一目標設(shè)備。
根據(jù)實時接收的各個工單處理設(shè)備30的負載信息,判斷是否存在第一目標設(shè)備,其中,負載信息包括cpu占用率、內(nèi)存占用率和待處理工單的數(shù)量,第一目標設(shè)備為cpu占用率小于等于預(yù)設(shè)cpu閾值,且內(nèi)存占用率小于等于預(yù)設(shè)內(nèi)存閾值的工單處理設(shè)備30,預(yù)設(shè)cpu閾值和預(yù)設(shè)內(nèi)存閾值可以根據(jù)實際情況設(shè)置。例如,若預(yù)設(shè)cpu閾值和預(yù)設(shè)內(nèi)存閾值均為80%,則cpu占用率和內(nèi)存占用率均小于等于80%的工單處理設(shè)備30均為第一目標設(shè)備。
當(dāng)存在第一目標設(shè)備時,根據(jù)步驟s221和步驟s231確定處理工單a的工單處理設(shè)備30。
步驟s221,確定每個第一目標設(shè)備分別處理完成正在處理的每個工單所用的時間。
具體地,工單處理速度和工單的任務(wù)量決定處理該工單所用的時間,當(dāng)工單處理速度相同時,工單的任務(wù)量越大,處理該工單所用的時間越長,例如獲取某空氣監(jiān)測器某一天的監(jiān)測數(shù)據(jù)的工單1與獲取該空氣監(jiān)測器某一個月的檢測數(shù)據(jù)的工單2相比,處理工單2所用的時間更長;又如,關(guān)閉10臺空氣凈化器的工單3與關(guān)閉100臺空氣凈化器的工單4相比,處理工單4所用的時間更長。因此根據(jù)每個第一目標設(shè)備的工單處理速度和每個第一目標設(shè)備正在處理的工單的任務(wù)量,確定每個第一目標設(shè)備分別處理完成正在處理的每個工單所用的時間。
步驟s231,在第一目標設(shè)備中確定處理工單a的工單處理設(shè)備30。
當(dāng)存在未處理任何工單的第一目標設(shè)備時,確定該第一目標設(shè)備為處理工單a的工單處理設(shè)備30。當(dāng)不存在未處理任何工單的第一目標設(shè)備時,將最短時間內(nèi)處理完成一個正在處理的工單的第一目標設(shè)備作為處理工單a的工單處理設(shè)備30,若存在多個符合條件的第一目標設(shè)備,則隨機選取其中的一個,例如兩個第一目標設(shè)備處理完成一個正在處理的工單的時間均為最小值,則隨機選取其中的一個。
當(dāng)不存在第一目標設(shè)備時,根據(jù)步驟s222和步驟s232確定處理工單a的工單處理設(shè)備30。
步驟s222,判斷是否存在第二目標設(shè)備。
第二目標設(shè)備為待處理工單的數(shù)量小于數(shù)量閾值的工單處理設(shè)備30,數(shù)量閾值可以根據(jù)實際情況設(shè)置。例如,若數(shù)量閾值為10,則待處理工單的數(shù)量小于10的工單處理設(shè)備30均為第二目標設(shè)備。若存在第二目標設(shè)備,則執(zhí)行步驟s232,若不存在第二目標設(shè)備,則暫不分配該工單a。
步驟s232,在第二目標設(shè)備中確定處理工單a的工單處理設(shè)備30。
將待處理工單的數(shù)量最少的第二目標設(shè)備,確定為處理工單a的工單處理設(shè)備30。若存在多個符合條件的第二目標設(shè)備,則隨機選取其中的一個,例如兩個第二目標設(shè)備的待處理工單的數(shù)量均最少,則隨機選取其中的一個。
圖4為本發(fā)明實施例一提供的高可用高負載的工單處理系統(tǒng)的第二種工作流程示意圖,如圖4所示,以工單a為例,該工單處理系統(tǒng)的第二種工作流程如下:
步驟s301,接收工單a。
步驟s302,搜集各個工單處理設(shè)備30的負載信息。
步驟s303,判斷是否存在空閑的工單處理設(shè)備30。
空閑的工單處理設(shè)備30指未處理任何工單的工單處理設(shè)備30。若不存在,則執(zhí)行步驟s304,若存在,則執(zhí)行步驟s307。
步驟s304,判斷是否存在第一目標設(shè)備。
具體的判斷方法與步驟s210相同,這里不再贅述。若不存在,則執(zhí)行步驟s305,若存在,則執(zhí)行步驟s307。
步驟s305,判斷是否存在第二目標設(shè)備。
具體的判斷方法與步驟s222相同,這里不再贅述。若不存在,則執(zhí)行步驟s306,若存在,則執(zhí)行步驟s307。
步驟s306,發(fā)出資源不足的報警信息。
步驟s307,確定處理工單a的工單處理設(shè)備30。
具體地確定方法與步驟s231和步驟s232相同,這里不再贅述。
步驟s308,處理工單a。
步驟s309,分配工單a的處理結(jié)果。
步驟s310,存儲工單a的處理結(jié)果,并交付給用戶。
實施例二:
本發(fā)明實施例二提供了一種工單處理方法,該方法應(yīng)用在如實施例一的高可用高負載的工單處理系統(tǒng)上。圖5為本發(fā)明實施例二提供的工單處理方法的流程示意圖,如圖5所示,該方法包括以下幾個步驟:
步驟s401,工單分配設(shè)備20獲取待分配的工單,在多個工單處理設(shè)備30中確定處理該工單的工單處理設(shè)備30,將該工單發(fā)送至確定的工單處理設(shè)備30。
步驟s402,工單處理設(shè)備30在接收到工單后,處理該工單,將處理結(jié)果發(fā)送至結(jié)果分配設(shè)備40。
步驟s403,結(jié)果分配設(shè)備40接收處理結(jié)果,在多個結(jié)果存儲設(shè)備50中確定存儲該處理結(jié)果的結(jié)果存儲設(shè)備50,將該處理結(jié)果發(fā)送至確定的結(jié)果存儲設(shè)備50。
步驟s404,結(jié)果存儲設(shè)備50在接收到處理結(jié)果后,存儲該處理結(jié)果。
具體地,步驟s401中在多個工單處理設(shè)備30中確定處理該工單的工單處理設(shè)備30,包括:
判斷多個工單處理設(shè)備30中是否存在cpu占用率小于等于預(yù)設(shè)cpu閾值,且內(nèi)存占用率小于等于預(yù)設(shè)內(nèi)存閾值的第一目標設(shè)備;若存在,則將能夠在最短時間內(nèi)處理完成一個正在處理的工單的第一目標設(shè)備,確定為處理上述工單的工單處理設(shè)備30;若不存在,則確定每個工單處理設(shè)備30的待處理工單的數(shù)量,根據(jù)該待處理工單的數(shù)量,確定處理該工單的工單處理設(shè)備30。
進一步地,該方法還包括:
工單分配設(shè)備20根據(jù)每個第一目標設(shè)備的工單處理速度和每個第一目標設(shè)備正在處理的工單的任務(wù)量,確定每個第一目標設(shè)備分別處理完成正在處理的每個工單所用的時間;工單分配設(shè)備20根據(jù)該時間,確定能夠在最短時間內(nèi)處理完成一個正在處理的工單的第一目標設(shè)備。
本發(fā)明實施例中,工單處理方法應(yīng)用在高可用高負載的工單處理系統(tǒng)上,工單分配設(shè)備獲取待分配的工單,在多個工單處理設(shè)備中確定處理該工單的工單處理設(shè)備,將該工單發(fā)送至確定的工單處理設(shè)備;工單處理設(shè)備在接收到工單后,處理該工單,將處理結(jié)果發(fā)送至結(jié)果分配設(shè)備;結(jié)果分配設(shè)備接收處理結(jié)果,在多個結(jié)果存儲設(shè)備中確定存儲該處理結(jié)果的結(jié)果存儲設(shè)備,將該處理結(jié)果發(fā)送至確定的結(jié)果存儲設(shè)備;結(jié)果存儲設(shè)備在接收到處理結(jié)果后,存儲該處理結(jié)果。本發(fā)明實施例采用分布式的高可用高負載的工單處理系統(tǒng),多個設(shè)備分別負責(zé)工單的分配和處理,以及處理結(jié)果的分配和存儲等不同的工作,因此當(dāng)接收的工單數(shù)量較多時,多個工單處理設(shè)備均可以及時處理多個工單,多個結(jié)果存儲設(shè)備可以及時存儲多個處理結(jié)果,以供用戶查看或者下載,從而提高了處理效率;由于該工單處理系統(tǒng)包括多個工單處理設(shè)備和多個結(jié)果存儲設(shè)備,因此當(dāng)其中任一個設(shè)備出故障時,不會影響整個系統(tǒng)的正常運行,從而可以避免單點故障問題的發(fā)生,可用性強、穩(wěn)定性好。因此,本發(fā)明實施例提供的工單處理方法具有高負載、高可用和高效率的優(yōu)點,解決了現(xiàn)有技術(shù)中處理工單時存在處理能力差和穩(wěn)定性差的技術(shù)問題。
本發(fā)明實施例提供的工單處理方法,與上述實施例提供的高可用高負載的工單處理系統(tǒng)具有相同的技術(shù)特征,所以也能解決相同的技術(shù)問題,達到相同的技術(shù)效果。
本發(fā)明實施例所提供的高可用高負載的工單處理系統(tǒng)及工單處理方法的計算機程序產(chǎn)品,包括存儲了程序代碼的計算機可讀存儲介質(zhì),所述程序代碼包括的指令可用于執(zhí)行前面系統(tǒng)實施例中所述的方法,具體實現(xiàn)可參見系統(tǒng)實施例,在此不再贅述。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的工單處理方法的具體工作過程,可以參考前述系統(tǒng)實施例中的對應(yīng)過程,在此不再贅述。
所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
在本發(fā)明的描述中,需要說明的是,術(shù)語“中心”、“上”、“下”、“左”、“右”、“豎直”、“水平”、“內(nèi)”、“外”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對本發(fā)明的限制。此外,術(shù)語“第一”、“第二”、“第三”僅用于描述目的,而不能理解為指示或暗示相對重要性。
最后應(yīng)說明的是:以上所述實施例,僅為本發(fā)明的具體實施方式,用以說明本發(fā)明的技術(shù)方案,而非對其限制,本發(fā)明的保護范圍并不局限于此,盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),其依然可以對前述實施例所記載的技術(shù)方案進行修改或可輕易想到變化,或者對其中部分技術(shù)特征進行等同替換;而這些修改、變化或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明實施例技術(shù)方案的精神和范圍,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)所述以權(quán)利要求的保護范圍為準。